HTTPS 사용하기 (AWS EC2, Route53, Load Balancer)

LEE JIYUN·2021년 6월 30일
7

HTTPS (HTTP Secure)

HTTP는 브라우저와 서버가 정보를 평문으로 전송하기 때문에 보안 문제가 발생할 수 있습니다. HTTPS는 이 취약점을 보완하여 클라이언트-서버가 암호화 통신 채널을 설정한 후에 HTTP 메시지를 전송합니다.

HTTPS는 다음 세 가지 주요 이유 때문에 사용합니다 출처

*기밀성 Confidentiality
HTTPS는 인터넷과 같은 공공 매체에서 두 참여자 간의 통신을 보호한다. 예를 들어, HTTPS가 없다면 와이파이Wi-Fi 액세스 포인트Access Point를 운영하는 사람은 액세스 포인트를 사용하는 사람이 온라인에서 무언가를 구입할 때 신용카드와 같은 개인정보를 볼 수도 있다.
기밀성은 인증되지 않은 제3자가 정보를 읽지 못하도록 보호한다. 평문(plaintext : 읽을 수 있는 정보 형식)을 암호문(ciphertext : 읽을 수 없는 정보 형식)으로 변환하는 암호화(encryption) 작업을 거친다.

*무결성 HTTPS는 변조되지 않은 정보로 목적지에 도달하게 한다. 예를 들어, 와이파이가 웹사이트에 광고를 추가하거나, 대역폭을 절약하고자 이미지 품질을 저하시키거나, 읽는 기사의 내용을 변조할 수 있지만 HTTPS는 웹사이트를 변조할 수 없도록 한다.

*인증 HTTPS를 통해 웹사이트의 진위 여부를 확인할 수 있다. 예를 들어, 와이파이 액세스 포인트을 운영하는 사람이 가짜 웹사이트를 브라우저에 보낼 수도 있다. HTTPS는 example.com이라는 웹사이트가 실제로 example.com인지 확인한다. 일부 인증서는 yourbank.com이 YourBank.Inc라는 걸 알리기 위해 해당 웹사이트의 법적 신원을 검사하기도 한다.

SSL 인증서 발급과 HTTPS 구축

다음과 같은 순서로 진행됩니다 :
SSL 인증서 발급 >>> Route53 레코드 생성 >>> 로드밸런서 등록 및 설정 >>> Route53 레코드 설정 >>> 로드밸런서 HTTP 리디렉션 설정

1. SSL 인증서 발급
1-1. AWS Certificate Mangager에 접속합니다
1-2. 인증서 요청 절차 사용하는 도메인 주소를 입력합니다. 같은 도메인 내의 여러 사이트를 모두 입력합니다. 와일드카드 인증서를 요청하려면 별표(*)를 이용하면 됩니다.
1-3. 발급 완료 : Route53에 레코드를 생성하고 Route53 호스팅 영역에서 CNAME이 추가된 것을 확인합니다.

2. 로드밸런서 생성 (EC2 - LoadBalancing)
로드밸런서는 트래픽이 많을 때 로드율 증가, 부하량, 속도저하 등을 고려하여 여러 대의 서버가 적절히 분산처리하여 해결해주는 서비스입니다. 로드 밸런서를 사용하면 애플리케이션의 가용성과 내결함성이 높아집니다.

2-1. 로드밸런서 유형 선택2-2. 로드밸런서 구성 로드밸런서 프로토콜에 리스너를 추가합니다 : HTTPS 443 PORT
가용영역은 인스턴스의 가용영역을 포함해야 합니다.2-3. 보안 설정 구성 : 발급한 인증서를 선택합니다.2-4. 보안 그룹 구성 : 인스턴스에 적용되어 있는 보안그룹을 선택합니다.보안 그룹에 443포트가 있는지 확인해야 합니다. 2-5. 라우팅 구성 : 여기에 입력한 이름이 리디렉션 설정 시 사용됩니다.2-6. 대상 등록 : 인스턴스를 선택하고 80 / 443 PORT를 각각 추가합니다.

3. 라우팅 대상 설정
3-1. Route53 대시보드 - DNS 관리 (호스팅영역) - 사용할 레코드세트를 선택합니다.
3-2. 기존 레코드를 선택하거나 신규인 경우 레코드를 생성해서 별칭 설정 후 트래픽 라우팅 대상에서 생성한 로드밸런서를 선택합니다.

4. HTTP 접속 시 HTTPS로 리디렉션하도록 설정
4-1. 로드밸런서 - 리스너 탭의 규칙 편집을 클릭합니다.

4-2. 전달 대상 그룹을 선택합니다.

5. 완료! HTTP, HTTPS 모두 HTTPS로 연결됩니다!

0개의 댓글