AWS ACM에서 인증서
Today Keys : aws, acm, ssl, tls, certificate, domain, validation, route53, dns, 인증서, 발급, issue
이번 포스팅에서는 AWS 리소스(ALB, CloudFront 등)에 HTTPS 보안을 적용하기 위한 첫걸음,
AWS Certificate Manager(ACM)를 통해 공인 인증서를 발급받고 도메인 소유권 검증까지 진행합니다.
web.zigispace.net 도메인을 사용하여 인증서를 요청하고,
DNS 방식을 통해 성공적으로 발급(Issued)받는 과정의 단계는 다음과 같습니다.
Step 1 : 인증서 요청 시작 (Request Certificate)
AWS 콘솔에서 ACM 서비스로 이동하여 인증서 발급 신청을 시작합니다.
인증서 유형 선택: 인터넷을 통해 서비스되는 웹사이트에 사용할 것이므로
"Request a public certificate"를 선택하고 Next를 클릭합니다.

Step 2 : 도메인 이름 및 검증 방법 설정
인증서를 발급받을 도메인 이름을 입력하고, 해당 도메인에 대한 소유권을 확인하는 방법을 선택합니다.
Fully Qualified Domain Name(FQDN)에는 인증서를 발급한 도메인 주소인 web.zigispace.net을 입력합니다.
Allow export는 기본 값인 disable를 선택합니다.
ACM에서 발급한 인증서를 외부로 export 하려면, enable로 하면 됩니다.
다만 비용이 발생합니다.
Validation method에서는 DNS validation를 선택합니다.
해당 도메인에 대해서 CNAME 레코드를 설정을 통해서 인증하는 방식입니다.
설정에 특정 레코드를 추가하여 소유권을 증명하는 방식으로,
추가한 레코드만 유지하면 추가적인 조치 없이도 ACM의 자동 갱신 기능을 활용할 수 있어 편리합니다.
만약 Route53으로 도메인을 관리 중이라면 레코드 등록도 편리하게 가능합니다.

Step 3 : 검증 대기 및 CNAME 레코드 확인
요청이 완료되면 인증서 상태가 "Pending validation (검증 대기 중)"으로 뜹니다.
이제 ACM이 요구하는 DNS 레코드를 내 도메인 설정에 추가해야 합니다.
인증서 상세 화면의 Domains 섹션을 보면, 소유권 검증을 위해 추가해야 할
CNAME Name과 CNAME Value가 생성된 것을 확인할 수 있습니다.
만약 해당 도메인의 호스팅 영역이 동일한 AWS 계정의 Route 53에 있다면,
우측 상단의 "Create records in Route 53" 버튼을 클릭하여 클릭 몇 번으로 이 레코드를 자동으로 추가할 수 있습니다.

Step 4 : CNAME 레코드 등록 및 확인
도메인을 관리하는 서버에서 Step 3에서 확인한, CNAME 레코드를 등록합니다.
실시간으로 바로 DNS에서 질의가 되지는 않고, DNS 서버에 레코드가 전파될 때까지 좀 기다리셔야 합니다.
정상적으로 등록 후, 전파가 완료되면 아래와 같이 CNAME 레코드의 값을 확인할 수 있습니다.

Step 5 : 발급 완료 (Issued)
DNS 전파가 완료되고 ACM이 해당 레코드를 성공적으로 검증하면, 인증서의 상태가 변경됩니다.
Certificate status에서 Status 값이 "Pending validation"에서 "Issued (발급됨)"으로 변경된 것을 확인할 수 있습니다.
Domains Status: 역시 "Success (성공)"로 바뀌었습니다.
이제 web.zigispace.net 도메인을 위한 유효한 공인 인증서가 준비되었습니다.
이 인증서는 이제 로드 밸런서(ALB)의 HTTPS 리스너나 CloudFront 배포 지점에 바로 연동하여 사용할 수 있습니다.
