본문 바로가기
Security

SSL 인증서 발급/갱신 시 DNS TXT 인증 정리 (일반형 가이드)

by Rainbound-IT 2025. 11. 17.
반응형

 

 

SSL 인증서를 발급하거나 갱신하는 과정에서

도메인 소유를 확인하기 위해 DNS TXT 레코드 추가를 요구하는 경우가 많다.

이 글에서는 특정 인증기관에 국한하지 않고,

일반적으로 적용되는 DNS TXT 인증 절차를 정리해본다.

(Azure DNS 기준 예시 포함)


📌 1. DNS TXT 인증이란?

도메인이 실제로 본인의 소유인지 검증하기 위한 방식이다.

인증기관(CA, Certificate Authority)은 DNS에 특정 TXT 값을 넣고,

그 값이 정상적으로 조회되는지 확인해서 도메인 소유권을 증명한다.

대표적인 CA들:

  • Let’s Encrypt
  • DigiCert
  • Sectigo
  • GlobalSign
  • ZeroSSL
  • Google Trust Services
  • AWS ACM 등

※ 각 기관마다 TXT 값의 형식은 조금씩 다르지만, 절차는 거의 동일하다.


📌 2. TXT 레코드는 어디에 설정해야 하나?

가장 중요한 점은:

도메인을 어디서 구매했는지가 아니라, DNS를 어디에서 관리하고 있는지가 기준이다.

즉, 현재 NS(Name Server)가 어떤 DNS 서비스로 설정되어 있는지가 핵심이다.

🔍 DNS 관리 위치 확인 명령어

nslookup -type=ns yourdomain.com

출력이 다음과 같다면:

  • ns1-01.azure-dns.com → Azure DNS
  • ns.cloudflare.com → Cloudflare DNS
  • ns.gabia.co.kr → 가비아 DNS
  • ns.cafe24.com → 카페24 DNS
  • ns-123.awsdns-45.com → AWS Route53
  • ns1.dns.ne.kr → 후이즈 DNS

결과에 나온 DNS 공급자에서 TXT 레코드를 추가해야 한다.


📌 3. TXT 레코드 구조 이해하기

일반적인 DNS TXT 검증 요청은 다음 2가지 형태 중 하나다.

① 도메인 자체에 TXT 추가

예:

  • Name: (공란 또는 @)
  • Type: TXT
  • Value: 긴 문자열

이 경우 Name을 비우면 루트 도메인에 들어간다.


② 특정 Challenge 레코드에 TXT 추가

가장 많이 쓰는 형태이며 Let’s Encrypt, ZeroSSL 등이 이렇게 처리한다.

예:

  • Name: _acme-challenge
  • Type: TXT
  • Value: 긴 문자열

서브도메인일 경우:

  • Name: _acme-challenge.www
  • 도메인 전체: _acme-challenge.www.yourdomain.com

※ DNS 관리 툴에서는 전체 도메인을 입력하는 것이 아니라

앞부분(Name)만 입력하면 나머지는 자동으로 붙는다.


📌 4. Azure DNS에서 TXT 레코드 추가하는 방법

Azure DNS Zones 기준:

 

항목  입력 값
Name _acme-challenge 또는 공란(@)
Type TXT
TTL 60 seconds 추천
Value 인증기관이 준 값

Azure는 Name을 공란으로 두면 자동으로 루트 도메인(@)에 적용된다.


📌 5. TXT 레코드가 적용되었는지 확인하는 방법

DNS 캐시 때문에 즉시 조회되지 않을 수 있으므로, 권한 DNS 서버(authoritative NS) 기준으로 직접 확인하는 것이 가장 정확하다.

기본 확인

nslookup -type=txt yourdomain.com

권한 DNS 서버로 직접 조회

  1. 먼저 NS 확인:
nslookup -type=ns yourdomain.com
  1. 출력된 NS 서버 중 하나로 직접 조회:
nslookup -type=txt yourdomain.com ns1-01.azure-dns.com

이렇게 하면 실시간 결과가 나온다.


📌 6. TXT 레코드는 인증 후 계속 둬야 하는가?

인증기관마다 다르지만, 일반적인 원칙은 다음과 같다.

✔ 1) 일회성 검증 방식 (대부분의 CA)

  • TXT는 발급/갱신 당시 1회만 사용
  • 검증 완료 후 삭제해도 무방함
  • 예: Let’s Encrypt, ZeroSSL, Sectigo, DigiCert, GlobalSign, Google, 기타 해외 CA

✔ 2) 지속적 자동 검증 방식

일부 플랫폼은 자동 갱신을 위해 TXT 레코드를 유지해야 한다.

대표 사례:

  • AWS ACM (DNS 인증 방식)
  • → 삭제하면 자동 갱신 실패 발생

즉, CACert가 지속 검증(autorenew)을 사용하는 경우에만 TXT를 유지해야 한다.


📌 7. 실무자가 체크해야 할 핵심 포인트 요약

  • TXT는 도메인 등록처가 아니라 DNS 관리 서비스에 설정해야 한다.
  • name을 전체 도메인으로 넣지 말고 Name 부분만 입력해야 한다.
  • TTL이 길면 반영이 늦어진다. 가능하면 60초 설정.
  • 인증이 안 되면 authoritative NS에 직접 질의해 최신 값을 확인한다.
  • 대부분의 CA는 검증 후 TXT 삭제 가능,
  • 단 AWS ACM DNS 인증만 예외적으로 유지 필요.

📝 마무리

DNS TXT 인증은 도메인 검증 방식 중 가장 안정적이고 빠른 방식이다.

처음에는 헷갈릴 수 있지만, 아래 4가지만 기억하면 어느 CA든 문제 없이 처리할 수 있다.

  1. DNS 관리 위치(NS) 확인
  2. 올바른 DNS 서비스에 TXT 추가
  3. nslookup/dig로 적용 확인
  4. CA 방식에 따라 삭제 여부 판단

이 절차만 이해하면 이후 SSL 인증서 갱신도 훨씬 수월하게 진행할 수 있다.

반응형

댓글