EC2를 연결한 개인도메인에 HTTPS적용 (수정)
카테고리: AWS
태그: HTTPS
HTTPS란?
SSL은 데이터 보안을 위해서 개발한 통신 레이어다.
HTTPS는 SSL 레이어 위에 HTTP를 통과 시키는 방식이다. 즉 평문의 HTTP 문서는 SSL 레이어를 통과하면서
암호화 돼서 목적지에 도착하고, 목적지에서는 SSL 레이어를 통과하면서 복호화 돼서 웹 브라우저에 전달된다.
또한 SSL은 표현계층의 프로토콜로 응용 계층 아래에 있기 때문에,
어떤 응용 계층의 데이터라도 암호화해서 보낼 수 있다.
간혹 HTTPS를 하나의 프로토콜로 인식하기도 하는데, HTTP와 SSL은 전혀 다른 계층의 프로토콜의 조합이다.
HTTPS over SSL로 보는게 좀더 정확한 시각이다.
장단점
장점
- SSL 인증서를 사용하여 데이터를 암호화 해주며 전송 중 하이재킹당해도 복호화하기 어렵기에 보안적인 측면에서 훌륭하다.
- HTTPS는 웹사이트의 무결성을 보호해준다. 웹 사이트와 사용자 브라우저 사이의 통신을 침입자가 건드리지 못하도록 한다.
(침입자라함은, 악의가 있는 공격자는 물론이고, 합법이지만 통신에 침입하여 페이지에 광고를 삽입하는 경우도 해당한다.) - 가벼운 웹 서핑이라면 HTTP도 상관없지만, 사용자의 정보를 웹 서버와 주고 받아야하는 경우라면 HTTP는
정보 유출의 위험성을 갖게된다. HTTPS는 침입자가 웹사이트와 사용자 사이의 통신을 몰래 수신하는 것을
방지함으로써 보안을 강화해준다. - getUserMedia()를 통한 사진 촬영이나 오디오 녹음, 프로그레시브 웹 앱과 같은 강력한 웹 플랫폼 신기능들은 실행하려면
사용자의 명시적인 권한 허락을 필요로 한다. 지오로케이션 API와 같은 오래된 API들도 실행할 때 권한이 필요하도록 업데이트되고
있는데, HTTPS는 이러한 새 기능과 업데이트된 API에 대한 권한 허락을 가능하게 한다.
- HTTPS는 웹사이트의 무결성을 보호해준다. 웹 사이트와 사용자 브라우저 사이의 통신을 침입자가 건드리지 못하도록 한다.
- HTTPS가 보다 SEO품질이 향상될 수 있어 마케팅 측면에서 유리하다.
- 네이버, 다음은 물론이고 구글 역시 검색 엔진 최적화(SEO: Search Engine Optimization) 관련 내용을
HTTPS 웹사이트에 대해서 적용하고 있다. 즉, 키워드 검색 시 상위 노출되는 기준 중 하나가 보안 요소이다.
- 네이버, 다음은 물론이고 구글 역시 검색 엔진 최적화(SEO: Search Engine Optimization) 관련 내용을
단점
- 모든 사이트에서 텍스트를 암호화해서 주고 받으면 과부하가 걸려 속도가 느려질 수 있다.
중요한 사이트는 HTTPS로 관리하고, 그렇지 않은 사이트는 HTTP를 사용한다. - HTTPS를 지원한다고 해서 무조건 안전한 것은 아니다. 신뢰할 수 있는 CA 기업이 아니라 자체적으로
인증서를 발급할 수도 있고, 신뢰할 수 없는 CA 기업을 통해서 인증서를 발급받을 수도 있기 때문이다.
그럼 HTTPS를 적용해보자
개인 도메인 구입
나는 가비아에서 구입했던 도메인이 있기에 가비아에서 도메인을 구입했다는 전제하에 포스팅을 진행하겠다.
https://www.gabia.com/
AWS Route53
EC2인스턴스 존재한다는 전제하에 Route53에 접속하여 호스팅 영역을 생성한다.
생성 후 아래 NS에 4개의 값을 가비아에 네임서버에 입력해준다.
AWS Certificate Manager
인증서를 발급받을 위해 Certificate Manager 메뉴로 진입 후
요청 -> 퍼블릭 인증서 요청 -> 도메인이름 추가(구매도메인.com) -> 나머지 기본값으로 작성 후 요청
반드시 DNS 검증 으로 해야한다.
생성한다면 검증대기중으로 나온다. 해당 인증서 ID로 접근하여 Route 53에서 레코드 생성해준다.
그리고 해당 인증서 클릭한 후 Route 53에서 레코드 생성 버튼을 클릭한다.
약 5~20분 정도면 검증이 완료된다.
AWS Load balancer
EC2 페이지에서 왼쪽 메뉴바를 보면 로드밸런서가 있으니 진입 후 로드밸런서 생성을 해주면된다.
- Schema : internet Interfacing
- IP address type : ipv4
- Network Mapping : 모두 선택한다.
- Security Group : default와 EC2 인스턴스에서 사용하는 보안그룹을 선택한다.
- Listner and Routing : 타깃 그룹을 만들고, HTTP와 HTTPS를 둘다 선택한다.
-
타깃그룹 생성시 네임입력후 디폴트로 넘어가면 된다.
인스턴스 선택후 8080포트만 Include as pending below 해주고 생성해준다.
인스턴스 목록에 2개가 있는 이유는 내가쓰고있는것 1개 테스트용 1개이다.
지금 처음만드는 사람은 1개가 정상이다.
-
- Security Listner : 전에 발행했던 인증서를 선택한다.
생성후 리스너탭으로 이동하여 HTTP : 8080 규칙 체크 -> 편집으로 이동 후 원래있던 액션을 삭제하고
아래 이미지와 같이 Redirect 해준다. 이유는 http로 접근시 https로 이동해주기 위함이다.
AWS Route53
Route53으로 이동하여 아래이미지와 같이 레코드를 생성
여기까지 진행했다면 정상적으로 SSL 인증서 적용이 완료이다.
http://test.com:8080 진입시 https://test.com:443 으로 리다이렉트되는걸 확인할수있다.
댓글남기기