소유하고 있는 도메인이 있어야 인증서를 발급받을 수 있습니다.
TL;DR
AWS Certificate Manager에서 인증서 발급
Elastic Beanstalk의 로드 밸런서 구성에서 인증서 적용
목차
- AWS Certificate Manager에서 인증서 발급
- Elastic Beanstalk의 로드 밸런서 구성에서 인증서 적용
- Nginx에서 http to https 리다이렉트
AWS Certificate Manager에서 인증서 발급
처음에는 Certbot을 이용하여 발급받으려 하였으나, AWS 내에서 ACM(AWS Certificate Manager)이라는 인증서 발급 서비스를 제공합니다. 해당 서비스를 이용하여 인증서를 발급받겠습니다.
제일 먼저 ACM에 들어가 인증서 요청 - 공인 인증서 요청을 선택하면 위와 같은 입력창이 뜹니다. 여기서 자신의 도메인(ex. your-domain.com)과 서브도메인(ex. *.your-domain.com)을 포함한 후 다음을 눌러줍니다.
그러면 DNS로 검증할 것인지, 이메일로 검증할 것인지 묻습니다. 아무거나 하셔도 됩니다. DNS 검증의 경우 자신이 도메인을 구매한 사이트의 DNS 콘솔에서 TXT 레코드를 추가하여 검증하는 방법이고, 이메일 검증은 도메인을 구매할 때 입력한 이메일로 검증하는 방법입니다. 저는 이메일 검증을 사용했습니다. 도메인을 두 개를 입력했으므로 이메일도 두 개가 오니 이점 유의해주세요.
위와 같이 인증이 완료되면 '성공'으로, 인증이 아직 완료되지 않으면 '검증 보류'라고 뜹니다. 인증을 완료했으면 Elastic Beanstalk 콘솔로 가줍니다.
Elastic Beanstalk의 로드 밸런서 구성에서 인증서 적용
다음으로는 리스너 설정입니다. 포트와 프로토콜은 아까와 마찬가지로 443과 HTTPS로 설정하고, ACM에서 발급받은 SSL 인증서를 선택한 후, SSL 정책은 종류가 많은데 ELBSecurityPolicy-2016-08을 선택해 줍니다. AWS에 의하면 백엔드 연결에는 ELBSecurityPolicy-2016-08이 항상 사용되고, 호환성을 위해 해당 정책을 사용하는 것이 좋다고 합니다. 다 됐으면 저장해줍니다. 맨 아래로 내려 '적용' 버튼을 누르면 애플리케이션이 재시작 됩니다. 재시작이 완료됐으면 https://로 정상적으로 접속되는지 확인해 봅니다.
Nginx에서 http to https 리다이렉트
http {
# (전략)
server {
# (중략)
server_name *.your-domain;
# 이하 추가
# HTTPS Redirection setting
server_name your-domain *.your-domain;
proxy_set_header X-Forwarded-Proto $scheme;
if ($http_x_forwarded_proto != 'https') {
return 301 https://$host$request_uri;
}
}
}
Nginx의 설정은 /etc/nginx/nginx.conf라는 파일에 저장됩니다. 80번 포트로 들어오는 server 설정 안에 아래 내용을 추가해 줍니다. 80번 포트로 들어오는 *.your-domain을 https로 리다이렉트 시켜주는 코드입니다.
sudo systemctl start nginx
설정이 끝났다면 nginx를 재시작해 줍시다. 그리고 http://로 자신의 도메인에 접속하여 https://로 리다이렉트 되는지 확인해 줍니다.
참고
aws.amazon.com/ko/premiumsupport/knowledge-center/elastic-beanstalk-https-configuration/
Elastic Beanstalk 환경의 HTTPS 구성
이제 로드 밸런서가 HTTPS를 사용하여 백엔드 인스턴스에 안전하게 연결합니다. 로드 밸런서는 인증서가 자체 서명되었는지 신뢰할 수 있는 인증 기관에서 발급했는지 여부에 상관없이 인스턴스
aws.amazon.com
docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/application/create-https-listener.html
Application Load Balancer용 HTTPS 수신기를 생성합니다. - Elastic Load Balancing
ACM은 4096 키 길이의 RSA 및 EC 인증서를 지원합니다. 하지만, ACM.과의 통합을 통해 로드 밸런서에 이러한 인증서를 설치할 수는 없습니다. 로드 밸런서와 함께 사용하기 위해서는 이러한 인증서를
docs.aws.amazon.com
'스터디 > AWS' 카테고리의 다른 글
bash 쉘, fish 쉘로 변경하기 (0) | 2021.03.14 |
---|
최근댓글