ACM 인증 방법 및 인증서 갱신 방법

고한나·2021년 9월 8일
10
post-thumbnail

AWS Certificate Manager 에서 인증서를 발급받아 사용하는 도중, 인증서 갱신이 안되는 이슈가 있었다.
DNS 인증 방법을 통해 인증서를 발급받았었는데, 갱신 기간이 만료되어 재갱신 할 수 없어 애를 먹었다...
이 참에 ACM 인증과 인증서 갱신에 대해 참고용으로 정리를 해보았다.

ACM 인증 방식.

ACM(AWS Certificate Manager) 이란 aws에서 제공해주는 무료 인증서이다.

ACM에서 발급받은 인증서를 통해 ELB 혹은 Cloudfront에서 HTTPS 통신을 사용하실 수 있다.

ACM이 인증서를 자동으로 갱신하거나 (DNS 유효성 검사를 사용하는 경우) 만료가 다가오면 전자 메일 알림을 보낸다.

이러한 서비스는 Public 및 Private ACM 인증서 모두에 대해 제공된다.

그럼 먼저, ACM 의 두가지 인증 방식에 대해 알아보자.

ACM을 사용하여 인증서 요청을 제출한 후에는 검증 방법을 변경할 수 없다.
ACM 인증서 검증 방법을 전환하려면 선호하는 검증 방법을 사용하여 동일한 도메인에 대한 새 인증서를 요청해야 한다. 새 인증서가 발급된 후 이전 인증서와 함께 사용된 리소스에 새 인증서를 연결하도록 하자.

📨 이메일 인증 방식

도메인 구매시 admin 으로 등록한 이메일 계정으로 인증 메일이 전송되고, 여기서 관리자가 전송된 메일을 확인하여 인증하는 방식이다. aws에서 도메인 정보에 있는 이메일 주소로 인증메일을 전송하며, 승인하고 인증을 완료하면 된다.

🔊 DNS 인증 방식

DNS 검증을 선택하면 ACM은 아래와 같이 이 데이터베이스에 추가해야 하는 하나 이상의 CNAME 레코드를 제공한다.

이러한 레코드에는 도메인을 제어하는 증명 역할을 하는 고유한 키-값 쌍이 포함되어 있다.
이 값을 DNS 서버에 등록해주는 인증방식으로 AWS에서 권장하는 방식입니다.

CNAME 레코드는 DNS 데이터베이스에 한 번만 추가해야 한다. ACM은 인증서가 사용 중이고 CNAME 레코드가 여전히 존재하는 경우, 인증서를 자동으로 갱신한다.


ACM 갱신 프로세스

ACM 인증서를 갱신하려면 인증서가 사용 중이어야 하며 만료되지 않아야 한다. 인증서가 만료되면 인증서를 갱신할 수 없다. 따라서 갱신 상태가 부적격으로 표시된다.

📨 이메일 인증 방식.

이메일로 유효성을 검사한 도메인을 다시 검증하기 위해 ACM은 주기적으로 HTTPS를 통해 도메인을 연결하고 반환된 TLS 인증서를 검사한다.

ACM 인증서는 13개월 (395일) 동안 유효하며 ACM은 만료 45일 전에 도메인의 WHOIS 사서함 주소를 사용하고 5개의 일반 관리자 주소로 갱신 통지를 보내기 시작한다. 알림에는 도메인 소유자가 쉽게 갱신을 위해 클릭할 수 있는 링크가 포함되어 있다. 나열된 모든 도메인의 유효성을 검사하면 ACM은 동일한 ARN 사용하여 갱신된 인증서를 발급한다.

검증하려면 72시간 내에 이러한 메시지 중 하나에 대해 조치를 취해야 한다. 72시간 후 원래 이메일을 수신하지 못하거나 토큰이 만료된 경우 이메일을 재전송하도록 요청할 수 있다.

이메일 메시지는 WHOIS에 등록된 다음 세 연락처 주소로 전송됩니다.

  • 도메인 등록자
  • 기술 연락처
  • 관리 담당자

🔊 DNS 인증 방식.

ACM 갱신 프로세스는 만료 날짜 60일 전에 시작되고 ACM은 갱신 단계의 초기 15일 기간 동안 인증서 자동 갱신을 시도하며 이 단계 동안 갱신 상태는 "Pending_Auto_Renewal"이 된다.
ACM은 각 도메인의 자동 유효성 검사를 시도하여 인증서가 사용 중이고(즉, ACM과 통합된 AWS 서비스와 연결되어 있고) 인증서의 모든 도메인 이름을 검증할 수 있는 경우(CNAME 검증) ACM은 인증서를 갱신한다.
ACM은 도메인 이름을 자동으로 검증할 수 없으며, 도메인 소유자에게 도메인을 검증하기 위해 수동 작업이 필요함을 알리고 인증서 상태를 "검증 보류 중"으로 변경한다.

만료 60일 전에 ACM에서 갱신 기준을 확인하는 절차.

  1. 인증서는 현재 AWS 서비스에서 사용 중인지 확인.

  2. FQDN(정규화된 도메인 이름)이 포함된 유효한 DNS 레코드가 있는지 확인.

  3. 필요한 CNAME 토큰이 존재하며 DNS 레코드에 액세스할 수 있는지 확인.

이 과정이 만족되는 경우 도메인 이름의 유효성을 검사한 것으로 간주하고 인증서를 갱신합니다.


ACM 갱신 문제 해결

📨 이메일 인증 방식

이메일을 받은 후, 72 시간이 지나 토큰이 만료되었던가 이메일을 받지 못한 경우, ACM에서 이메일을 재전송하도록 요청할 수 있다.

도메인 검증이 필요한 인증서의 옆의 확인란을 선택한다.

그런 다음 [Actions] 를 선택한 후 [Resend validation email] 을 선택한다.

🔊 DNS 인증 방식

ACM에서 도메인 이름을 자동으로 검증할 수 없는 경우 도메인 소유자에게 도메인 검증 및 인증서 갱신을 완료해야 한다고 알림을 보낸다. (이러한 알림은 만료일 45일, 30일, 7일 및 1일 전에 전송).
자동 유효성 검사가 실패하는 가장 일반적인 이유는 필요한 CNAME이 실수로 변경되거나 제거되었기 때문이다.

즉, DNS 검증 방식에서 갱신에 실패하는 가장 큰 원인은 72시간 내에 CNAME 값을 확인할 수 없어 검증 시간이 초과되는 경우이다.

이러한 결과가 발생하는 가장 큰 이유는 ACM에서 생성한 값으로 DNS 구성을 업데이트하지 않았기 때문이다. 따라서, 이 문제를 해결하려면 CNAME 지침을 검토한 후 새 인증서를 요청 해야 한다.

즉, 도메인에 대한 새 ACM 인증서를 발급하고 CNAME을 DNS 서버에 올바르게 추가해야 한다.

만약, Amazon Route 53 콘솔을 사용하시는 경우 호스팅 영역에서 레코드 생성에 대한 아래 문서를 참고해서 진행하면 된다.

#Creating records by using the Amazon Route 53 console
https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-creating.html

하지만 만약, Route53 서비스를 이용하지 않는 경우 DNS 서버를 직접 변경해야 한다.

도메인을 구입하신 사이트로 접속하여 로그인 후, 레코드 변경을 신청하도록 하자.

예를 들어, 나는 hosting.kr 에서 구매한 도메인의 name server를 route53으로 변경하고 route53에 등록한 상태이다.
따라서 route53에서 다시 생성하면 되지만, 간단하게 도메인 제공 업체인 hosting.kr 변경하는 작업을 정리하고자 한다.

  1. 도메인 확인

    whois (후이즈) 사이트에 접속하셔서 변경하실 도메인을 검색한다.

    등록하신 업체를 확인하고 홈페이지로 이동한다.

  2. 회원 가입 후, [도메인 관리] 탭으로 이동합니다.

  1. 변경하고자 하는 도메인을 선택하신 뒤, DNS 레코드 설정을 클릭합니다.
포워딩, 파킹 등 부가서비스를 이용하실 경우 호스팅케이알 네임서버로 설정이 필요하다.
 네임 서버 변경 시, 반영될 때 까지 시간이 소요됩니다. 
  1. ACM에서 확인한 레코드 값을 입력 후 설정내용 추가를 클릭하고 마지막 적용하기 버튼을 클릭합니다.

hosting.kr 에서 dns 레코드를 추가하는 방법은 아래 링크에 자세히 나와있다.

https://help.hosting.kr/hc/ko/articles/900001814906-DNS-%EB%A0%88%EC%BD%94%EB%93%9C%EB%8A%94-%EC%96%B4%EB%96%BB%EA%B2%8C-%EC%84%A4%EC%A0%95%ED%95%98%EB%82%98%EC%9A%94-

0개의 댓글