nslookup으로 CNAME 레코드 등록 여부 확인하기
안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번 블로그에서는 nslookup으로 CNAME 레코드 등록 여부를 확인하는 방법에 대해서 정리해 봤습니다.
현재 상황
Amazon Web Services의 AWS Certificate Manager (ACM)을 이용해 SSL/TLS 인증서를 발급받고, 이를 Application Load Balancer (ALB)에 적용하려고 합니다.
인증서 발급 과정에서는 ACM이 제공하는 CNAME 레코드를 DNS에 등록하여 도메인 소유권을 검증해야 합니다.
하지만 사내 DNS 서버는 직접 관리하지 않고 별도의 운영팀에서 관리하고 있기 때문에, CNAME 레코드가 실제로 등록되었는지 직접 확인할 수 없는 상황입니다. 일반적으로는 DNS 운영팀으로부터 등록 완료 여부를 전달받아야 하지만, 연락이 지연되면 인증서 발급이 정상적으로 진행되고 있는지 확인하기 어렵습니다.

nslookup -type=CNAME 활용
AWS Certificate Manager(ACM)으로 SSL/TLS 인증서를 발급받아 Application Load Balancer(ALB)에 적용하려고 합니다.
ACM에서는 도메인 소유권을 검증하기 위해 CNAME 레코드 등록을 요구하며, 해당 CNAME 레코드는 사내 DNS 서버에 등록해야 합니다.
다만 사내 DNS 서버는 별도의 운영팀에서 관리하고 있어 직접 등록 여부를 확인할 수 없습니다. 따라서 DNS 담당자의 확인을 받지 못하면 CNAME 레코드가 정상적으로 등록되었는지 알기 어려운 상황입니다.
먼저 ACM에서 인증서를 확인해 보면 현재 상태가 검증 대기 중(Pending validation) 인 것을 확인할 수 있습니다.
| 도메인 | 상태 | 갱신 상태 | 유형 | CNAME 이름 | CNAME 값 |
|---|---|---|---|---|---|
| *.jaewook.도메인.com | 검증 대기 중 | - | CNAME | xxxxxxxxxxxxxxxxxxx.jaewook.도메인.com. | xxxxxxxxxxxxxxxxxxx.xxxxxxxx.acm-validations.aws. |
| *.jaewook.도메인.com | 검증 대기 중 | - | CNAME | xxxxxxxxxxxxxxxxxxx.jaewook.도메인.com. | xxxxxxxxxxxxxxxxxxx.xxxxxxxx.acm-validations.aws. |
DNS 서버에는 이미 CNAME 레코드가 등록되었더라도 DNS 전파가 완료되지 않았거나 ACM이 아직 검증을 수행하지 않은 경우에는 인증서 상태가 계속 검증 대기 중으로 표시될 수 있습니다.
이럴 때마다 DNS 운영팀에 등록 여부를 확인하는 것은 번거롭고 시간이 소요됩니다. 이 경우 nslookup -type=CNAME 명령어를 이용하면 DNS 서버에 CNAME 레코드가 정상적으로 등록되었는지 직접 확인할 수 있습니다.
다음 예제를 통해 실제 CNAME 레코드가 등록되었는지 확인해 보겠습니다.
nslookup -type=CNAME 명령어를 사용하면 특정 도메인에 CNAME 레코드가 등록되어 있는지 확인할 수 있습니다.
아래 예제에서는 8.8.8.8(Google Public DNS)를 DNS 서버로 지정하여 CNAME 레코드를 조회했습니다.
nslookup -type=CNAME xxxxxxxxxxxxxxxxxxx.jaewook.도메인.com. 8.8.8.8
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
xxxxxxxxxxxxxxxxxxx.jaewook.도메인.com
canonical name = xxxxxxxxxxxxxxxxxxx.xxxxxxxx.acm-validations.aws.
Authoritative answers can be found from:
조회 결과에 canonical name이 출력되면 해당 도메인의 CNAME 레코드가 정상적으로 등록되어 있으며, ACM에서 요구하는 대상 주소를 가리키고 있는 것을 의미합니다.
반대로 CNAME 레코드가 등록되지 않았거나 DNS에서 조회할 수 없는 경우에는 아래와 같이 NXDOMAIN 오류가 반환됩니다.
nslookup -type=CNAME xxxxxxxxxxxxxxxxxxx.jaewook.도메인.com. 8.8.8.8
Server: 8.8.8.8
Address: 8.8.8.8#53
** server can't find xxxxxxxxxxxxxxxxxxx.jaewook.도메인.com: NXDOMAIN
NXDOMAIN은 조회한 도메인 이름이 DNS에 존재하지 않는다는 의미입니다. 일반적으로 DNS 운영팀에서 아직 CNAME 레코드를 등록하지 않았거나, DNS 전파가 완료되지 않은 경우에 이러한 결과가 나타납니다.
반대로 canonical name이 정상적으로 조회되는데도 ACM의 인증서 상태가 계속 검증 대기 중(Pending validation) 으로 표시된다면, 먼저 일정 시간 기다려 보는 것이 좋습니다. DNS 전파 또는 ACM의 검증이 완료되면 인증서 상태가 자동으로 발급됨(Issued) 으로 변경됩니다.
만약 충분한 시간이 지난 후에도 검증 대기 중(Pending validation) 상태가 계속된다면, 인증서를 삭제한 후 동일한 도메인으로 다시 생성하는 방법을 시도해 볼 수 있습니다. 동일한 AWS 계정에서 같은 도메인에 대해 DNS 검증을 사용하는 경우에는 기존 CNAME 검증 레코드를 그대로 재사용할 수 있으므로, 대부분 별도로 DNS 레코드를 다시 등록할 필요가 없습니다.
다만 인증서를 재생성했는데도 계속 검증 대기 중(Pending validation) 상태가 유지된다면 다음 사항을 확인해 보는 것이 좋습니다.
- CNAME 이름(Name)과 값(Value)이 ACM에서 제공한 내용과 정확히 일치하는지
nslookup또는dig명령어로 공인 DNS에서 CNAME 레코드가 정상적으로 조회되는지- 도메인에 CAA 레코드가 설정되어 있다면 인증서 발급을 제한하고 있지는 않은지
마무리
사내 DNS 서버를 직접 관리하지 않는 환경에서는 CNAME 레코드가 정상적으로 등록되었는지 확인하기 위해 DNS 운영팀의 답변을 기다려야 하는 경우가 많습니다.
하지만 nslookup -type=CNAME 명령어를 사용하면 공인 DNS에서 CNAME 레코드가 정상적으로 조회되는지 직접 확인할 수 있어, DNS 등록 여부를 빠르게 검증할 수 있습니다. 이를 통해 DNS 등록 문제인지, DNS 전파를 기다려야 하는 상황인지, 또는 ACM 검증이 아직 완료되지 않은 것인지 보다 쉽게 판단할 수 있습니다.
특히 ACM 인증서가 검증 대기 중(Pending validation) 상태에 머물러 있을 때 nslookup으로 먼저 CNAME 레코드를 확인해 보면 불필요하게 DNS 운영팀에 반복적으로 문의하는 일을 줄일 수 있습니다.
앞으로 ACM을 이용한 인증서 발급 과정에서 DNS를 직접 관리하지 않는 환경이라면, nslookup -type=CNAME 명령어를 함께 활용해 보다 효율적으로 문제를 확인해 보시기 바랍니다.











