EC2를 연결한 개인도메인에 HTTPS적용 (수정)

Date:     Updated:

카테고리:

태그:

HTTPS란?

SSL은 데이터 보안을 위해서 개발한 통신 레이어다.
HTTPS는 SSL 레이어 위에 HTTP를 통과 시키는 방식이다. 즉 평문의 HTTP 문서는 SSL 레이어를 통과하면서
암호화 돼서 목적지에 도착하고, 목적지에서는 SSL 레이어를 통과하면서 복호화 돼서 웹 브라우저에 전달된다.
또한 SSL은 표현계층의 프로토콜로 응용 계층 아래에 있기 때문에,
어떤 응용 계층의 데이터라도 암호화해서 보낼 수 있다.

간혹 HTTPS를 하나의 프로토콜로 인식하기도 하는데, HTTP와 SSL은 전혀 다른 계층의 프로토콜의 조합이다.
HTTPS over SSL로 보는게 좀더 정확한 시각이다.

장단점

장점

  1. SSL 인증서를 사용하여 데이터를 암호화 해주며 전송 중 하이재킹당해도 복호화하기 어렵기에 보안적인 측면에서 훌륭하다.
    • HTTPS는 웹사이트의 무결성을 보호해준다. 웹 사이트와 사용자 브라우저 사이의 통신을 침입자가 건드리지 못하도록 한다.
      (침입자라함은, 악의가 있는 공격자는 물론이고, 합법이지만 통신에 침입하여 페이지에 광고를 삽입하는 경우도 해당한다.)
    • 가벼운 웹 서핑이라면 HTTP도 상관없지만, 사용자의 정보를 웹 서버와 주고 받아야하는 경우라면 HTTP는
      정보 유출의 위험성을 갖게된다. HTTPS는 침입자가 웹사이트와 사용자 사이의 통신을 몰래 수신하는 것을
      방지함으로써 보안을 강화해준다.
    • getUserMedia()를 통한 사진 촬영이나 오디오 녹음, 프로그레시브 웹 앱과 같은 강력한 웹 플랫폼 신기능들은 실행하려면
      사용자의 명시적인 권한 허락을 필요로 한다. 지오로케이션 API와 같은 오래된 API들도 실행할 때 권한이 필요하도록 업데이트되고
      있는데, HTTPS는 이러한 새 기능과 업데이트된 API에 대한 권한 허락을 가능하게 한다.
  2. HTTPS가 보다 SEO품질이 향상될 수 있어 마케팅 측면에서 유리하다.
    • 네이버, 다음은 물론이고 구글 역시 검색 엔진 최적화(SEO: Search Engine Optimization) 관련 내용을
      HTTPS 웹사이트에 대해서 적용하고 있다. 즉, 키워드 검색 시 상위 노출되는 기준 중 하나가 보안 요소이다.

단점

  1. 모든 사이트에서 텍스트를 암호화해서 주고 받으면 과부하가 걸려 속도가 느려질 수 있다.
    중요한 사이트는 HTTPS로 관리하고, 그렇지 않은 사이트는 HTTP를 사용한다.
  2. HTTPS를 지원한다고 해서 무조건 안전한 것은 아니다. 신뢰할 수 있는 CA 기업이 아니라 자체적으로
    인증서를 발급할 수도 있고, 신뢰할 수 없는 CA 기업을 통해서 인증서를 발급받을 수도 있기 때문이다.

그럼 HTTPS를 적용해보자

개인 도메인 구입

나는 가비아에서 구입했던 도메인이 있기에 가비아에서 도메인을 구입했다는 전제하에 포스팅을 진행하겠다.
https://www.gabia.com/

AWS Route53

EC2인스턴스 존재한다는 전제하에 Route53에 접속하여 호스팅 영역을 생성한다.

image

생성 후 아래 NS에 4개의 값을 가비아에 네임서버에 입력해준다.

image
image

AWS Certificate Manager

인증서를 발급받을 위해 Certificate Manager 메뉴로 진입 후 요청 -> 퍼블릭 인증서 요청 -> 도메인이름 추가(구매도메인.com) -> 나머지 기본값으로 작성 후 요청
반드시 DNS 검증 으로 해야한다.

image

생성한다면 검증대기중으로 나온다. 해당 인증서 ID로 접근하여 Route 53에서 레코드 생성해준다.

image

그리고 해당 인증서 클릭한 후 Route 53에서 레코드 생성 버튼을 클릭한다.
약 5~20분 정도면 검증이 완료된다.

image

AWS Load balancer

EC2 페이지에서 왼쪽 메뉴바를 보면 로드밸런서가 있으니 진입 후 로드밸런서 생성을 해주면된다.

image

  • Schema : internet Interfacing
  • IP address type : ipv4
  • Network Mapping : 모두 선택한다.
  • Security Group : default와 EC2 인스턴스에서 사용하는 보안그룹을 선택한다.
  • Listner and Routing : 타깃 그룹을 만들고, HTTP와 HTTPS를 둘다 선택한다.
    • 타깃그룹 생성시 네임입력후 디폴트로 넘어가면 된다.

      image

      인스턴스 선택후 8080포트만 Include as pending below 해주고 생성해준다.
      인스턴스 목록에 2개가 있는 이유는 내가쓰고있는것 1개 테스트용 1개이다.
      지금 처음만드는 사람은 1개가 정상이다.

      image

      image

  • Security Listner : 전에 발행했던 인증서를 선택한다.

생성후 리스너탭으로 이동하여 HTTP : 8080 규칙 체크 -> 편집으로 이동 후 원래있던 액션을 삭제하고
아래 이미지와 같이 Redirect 해준다. 이유는 http로 접근시 https로 이동해주기 위함이다.

image

AWS Route53

Route53으로 이동하여 아래이미지와 같이 레코드를 생성 image

여기까지 진행했다면 정상적으로 SSL 인증서 적용이 완료이다.
http://test.com:8080 진입시 https://test.com:443 으로 리다이렉트되는걸 확인할수있다.

AWS 카테고리 내 다른 글 보러가기

댓글남기기