우노
[AWS Route 53] HTTPS 통신을 위한 SSL 인증서 발급하기 (Route 53, Certificate Manager, Load Balancer) 본문
AWS/Route 53
[AWS Route 53] HTTPS 통신을 위한 SSL 인증서 발급하기 (Route 53, Certificate Manager, Load Balancer)
운호(Noah) 2020. 11. 7. 14:24- HTTPS를 사용하려면 SSL/TLS 인증서가 필요하다.
- SSL/TLS 인증서는 인터넷 같이 TCP/IP 네트워크를 사용하는 통신에 적용되며, 통신 과정에서 전송계층 종단간 보안과 데이터 무결성을 확보해준다.
- SSL/TLS 인증서를 사용하는 방법은 2가지이다.
- 1) 서버 내부에 SSL인증서를 설치하고 서비스하는 방법 (일반적인 기존 방식)
- 2) AWS에서 제공하는 인증서 관리 서비스인 ACM(AWS Certificate Manager)을 적용하는 방법
- 즉, AWS Certificate Manager(ACM)를 이용하면 AWS 플랫폼에서 SSL/TLS 인증서를 편하게 프로비저닝, 관리, 배포, 갱신할 수 있다.
Route 53 도메인 등록
- AWS Console → Route 53 → 도메인 → 등록된 도메인 → 도메인 등록
- 1 단계 : 도메인 이름 선택 → 작성 → 장바구니에 추가 → 계속
- 2 단계 : 연락처 세부 정보 등록
- 3 단계 : 확인 및 구매
AWS Certificate Manager에서 SSL/TLS 인증서 받기
- AWS Certificate Manager에서 도메인을 등록한 후 SSL/TLS 인증서를 받으면, 이후 해당 도메인에 대한 https 접속이 가능해진다.
- AWS console → AWS Certificate Manager → 인증서 프로비저닝 시작하기 or 인증서 요청 → 공인인증서 요청 선택 → 인증서 요청
- 1단계 : 도메인 이름 추가
- Route 53에 등록한 도메인 입력
- 2단계 : 검증 방법 선택 → DNS 검증 선택
- 3단계 : 태그 추가
- 4단계 : 검토 및 요청
- 5단계 : 검증 → Route 53에서 레코드 생성 → 계속
- Route 53에 도메인이 있다면 'Route 53에서 레코드 생성'이라는 버튼만 누르면 바로 검증이 가능하다.
- 모두 마치면 DNS에 CNAME을 추가할 때까지 검증 보류 상태가 된다.
- 검증은 바로 될 수도, 최대 30분 정도 걸릴 수도 있다고 한다.
ELB 생성
- AWS Console → EC2 → 로드밸런싱 → 로드밸런서 → 로드밸런서 생성 → Application Load Balancer 생성
- HTTP 및 HTTPS 트래픽을 사용하기 때문에 Application Load Balancer를 선택
- 1단계 : 로드밸런서 구성
- 기본구성 → 이름 설정
- 리스너 설정
- 리스너 : 로드밸런서가 받아들이는 포트를 설정한다.
- http 80 포트는 기본으로 추가 되어있고, https 443 포트를 리스너 추가해주면 된다.
- 가용 영역 설정 → 2개 이상의 가용 영역 선택
- Load Balancer는 지정한 가용 영역에 위치한 대상으로만 트래픽을 라우팅한다.
- 2개 이상의 가용 영역을 선택해야하며, 가용 영역당 1개의 서브넷만 지정할 수 있다.
- 2단계 : 보안 설정 구성
- ACM으로 발급한 인증서를 dropdown 메뉴에서 선택
- https 443 트래픽이 route 53 → ELB 에 전송되면 SSL 인증서를 사용해 허락하는 형태이다.
- 3단계 : 보안 그룹 구성
- 보안 그룹은 Load Balancer에 대한 트래픽을 제어하는 방화벽 규칙 세트이다.
- 특정 트래픽을 Load Balancer에 도달하도록 허용할 규칙을 추가할 수 있다.
- 새 보안 그룹 생성
- HTTP 80 허용, HTTPS 443 허용
- 4단계 : 라우팅 구성
- ELB로 온 트래픽을 전달할 '대상그룹'을 설정하는 부분이다.
- '대상그룹'의 이름을 설정하고, ELB로 온 트래픽을 EC2 인스턴스에 전달하는 것이므로 대상 유형을 인스턴스로 선택한다.
- ELB가 EC2와 통신할 프로토콜과 포트번호를 설정한다.
- 기본 포트는 HTTP 80 포트이다.
- instance에게 80번 포트로 트래픽을 전달할 것이기 때문에, 그대로 진행하면 된다.
- 나중에 EC2 > 로드밸런싱 > 대상그룹 메뉴에서 편집 혹은 추가가 가능하다.
- 5단계 : 대상 등록
- 마지막으로 실질적인 대상을 등록한다.
- 현재 운영중인 인스턴스 중 트래픽을 전달할 인스턴스를 선택 → 등록된 항목에 추가
- 6단계 : 검토 → 생성
ELB 리스너 리디렉션 수정
- 현재, 위에서 생성한 ELB는 http는 http로 https는 https로 트래픽을 전달한다.
- 하지만 http,https 두 가지 트래픽 모두 https로 전달해야하므로, 리디렉션을 수정해야한다.
- AWS Console → EC2 → 로드밸런서 → 생성한 로드밸런서 선택 → 리스너 탭 → HTTP : 80 리스너 선택
- 규칙 부분 → 규칙 보기/편집 선택 → 편집/보기 페이지의 상단 편집 버튼 선택
- THEN에서 기존 규칙 삭제 → 작업 추가 → 리디렉션 대상 → HTTPS, 443 포트를 입력 → 저장 → 업데이트
도메인에서 ELB로 트래픽을 라우팅하기 위해 Route 53 레코드 생성
- 보통 도메인이 입력되었을때, instance의 IP로 트래픽을 라우팅하지만
- 저희는 도메인에서 ELB로 트래픽을 연결해야 SSL을 적용할 수 있으므로, ELB의 주소를 A record로 입력해서 저장할 것 입니다.
- AWS Console → Route 53 → 호스팅 영역 → 이전에 등록한 도메인 클릭 → 레코드 생성
- 1단계 : 라우팅 정책 선택
- 단순 라우팅
- 2단계 : 레코드 구성 → 단순 레코드 정의 → 레코드 생성
- 레코드 이름 설정
- 값/트래픽 라우팅 대상 → 설정을 완료하였던 Load Balancer
- Application/Classic Load Balancer에 대한 별칭
- 리전 선택
- 설정을 완료하였던 Load Balancer 선택
- 레코드 유형
- A - IPv4 주소 및 일부 AWS 리소스로 트래픽 라우팅
'AWS > Route 53' 카테고리의 다른 글
[AWS Route 53] 정적 웹 사이트 호스팅 방법 (0) | 2021.11.28 |
---|
Comments