[AWS] ACM 과 Route53을 이용한 사설 도메인 HTTPS(SSL) 등록 방법 -(2) ACM을 이용한 SSL 인증서 등록 (HTTPS)
Architecture Diagram
위 다이어그램은 https://it-eldorado.tistory.com/117?category=824496 를 참고하여 재구성하였다.
Goal
(1) ACM 서비스 개요 / DNS 동작과정 이해
(2) ACM으로 발급한 SSL 인증서를 외부 도메인 기관(NS record) 및 Route53(CNAME record) 등록
(3) ALB에 SSL 인증서 적용 및 HTTPS 요청 처리 확인
본 글에서 전체 Diagram 중 노랑색 네모로 표시된 영역에 대하여 진행을 할 것이다.
Step 1. ACM SSL 인증서를 외부 도메인 기관(NS record) 및 Route53(CNAME record) 등록
외부 도메인 기관(가비아)에서 구매한 도메인에 SSL/TLS 인증서를 적용시켜보자.
- Route 53 = ACM CNAME 값 등록
- 외부 도메인 기관(가비아) = Name Server 값 등록
1-1. ACM 서비스 항목 검색
1-2. 인증서 요청
1-3. SSL/TLS 인증서 발급 (By Amazon)
인증서 유형을 선택하는 항목이다. 공인 인증서 요청을 선택하고 Next로 넘어가자.
1-4. 도메인 정보 입력 및 도메인 소유 인증방식 선택
ACM에서 인증서를 발급하기 전에 Amazon은 사용자가 사이트의 도메인을 컨트롤하는지 확인을 해야한다. 이러한 확인작업을 진행하기 위해 AWS에서 도메인 소유권을 확인하기 위해 2가지 인증방식을 제공한다. 첫째로서는 DNS 검증방식이고 둘째로서는 이메일 인증방식이다. 검증방식을 선택 후 인증서 요청을 제출하게 되면 검증 방법을 변경할 수 없음을 유의하자.
도메인 소유 인증방식 선택
(1) DNS 검증방법
DNS 검증방법을 선택하면 ACM은 DNS 공급자 데이터베이스에 추가할 CNAME 레코드를 생성하여 제공한다.
(2) E-MAIL 검증방식
ACM은 사용자가 지정한 각각의 도메인에 대해 WHOIS 데이터베이스에 기재된 3개의 연락처 주소와 5개의 공통 시스템 관리자 주소로 이메일 메시지를 전송한다.
도메인 이름 및 인증방식을 선택한 뒤, Request를 눌러 ACM 인증서를 생성하자.
1-5. Route53에 도메인 CNAME값 등록
생성하게 되면 Pending Validation이라는 문구가 나온다. Route53을 이용하지 않는다면, CNAME 값을 외부 DNS 공급자에 등록을 진행해야 한다. 그러나, 여기에서는 Route53을 이용하여 DNS 검증방법을 이용할 것이기에 Route53에는 ACM에서 생성한 CNAME 값을 등록을 진행할 것이고, 외부 도메인기관(가비아)에는 네임서버 값을 등록할 것이다.
1-5-1. Route53에 CNAME Value 등록
CNAME 값을 등록해주기 위해 Rotue53에 호스팅 영역을 생성하자.
Route53 > Hosted zones > Create hosted zone
필요 정보를 기입 후 도메인 호스팅 영역을 생성하자.
다시 ACM 항목으로 돌아와서 방금 생성한 호스팅 영역에 CNAME 값을 등록해주자.
ACM 항목에서 Create records in Route53 버튼을 누르면 쉽고 빠르게 등록할 수 있다.
Route 53에 CNAME 정상 등록 확인
1-5-2. 외부 도메인 기관에 Name Server 값 등록
생성한 Route53 호스팅 존에서 아마존 Name 서버를 확인할 수 있다. 이를 외부 도메인 기관에 등록 진행이 필요하다.
(네임서버 등록 전)
(Route53 네임서버 등록 후)
1-6. ACM 정상 발급 확인
정상적으로 발급된 것을 확인할 수 있다. 현재 해당 인증서가 어떠한 AWS 자원과 연결된 것이 없기에 자동 자격인증 갱신이 Ineligible 상태이다. 다음 글에서 ALB와 연동시킨 뒤, 자동 자격인증 갱신이 이루어지는지 확인해 보자.
비고.
ACM 서비스를 이용하는데 있어서의 큰 장점은 인증서 자동갱신 기능이다. 그러나 ACM에 등록된 모든 자격증에 대하여 자동갱신을 진행해주지는 않으며, 특정 조건이 충족이 되어야 ACM에서 자동갱신이 된다.
ELIGIBLE: if associated with another AWS service, such as Elastic Load Balancing or CloudFront.
ELIGIBLE: if exported since being issued or last renewed.
ELIGIBLE: if it is a private certificate issued by calling the ACM RequestCertificate API and then exported or associated with another AWS service.
ELIGIBLE: if it is a private certificate issued through the management console and then exported or associated with another AWS service.
NOT ELIGIBLE: if it is a private certificate issued by calling the ACM Private CA IssueCertificate API.
NOT ELIGIBLE: if imported.
NOT ELIGIBLE: if already expired.
NOT ELIGIBLE: for a certificate with a domain name that contains hyphens as its third and fourth characters. For example, the following domain name is not permitted: ab--example.com
참조: https://docs.aws.amazon.com/acm/latest/userguide/managed-renewal.html
참조
[1] Easier Certificate Validation Using DNS with AWS Certificate Manager
[2] DNS 검증
https://docs.aws.amazon.com/ko_kr/acm/latest/userguide/dns-validation.html
[3] Managed renewal for ACM ceritficates
https://docs.aws.amazon.com/acm/latest/userguide/managed-renewal.html