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 서버로 직접 조회
- 먼저 NS 확인:
nslookup -type=ns yourdomain.com
- 출력된 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든 문제 없이 처리할 수 있다.
- DNS 관리 위치(NS) 확인
- 올바른 DNS 서비스에 TXT 추가
- nslookup/dig로 적용 확인
- CA 방식에 따라 삭제 여부 판단
이 절차만 이해하면 이후 SSL 인증서 갱신도 훨씬 수월하게 진행할 수 있다.
'Security' 카테고리의 다른 글
| 웹쉘인젝션 공격 분석 및 대응 (Nextjs, React 보안 취약점 CVE-2025-66478) (0) | 2025.12.09 |
|---|---|
| [우체국 스팸] 패키지가 물류 센터에 보류 중 - 조치방법 (0) | 2025.05.07 |
| mTLS란? 개념 동작 장점 단점 (0) | 2024.01.18 |
| 윈도우WSL에서 chmod 안될때 (0) | 2022.08.31 |
| 윈도우 cmd 에서 pem 파일 ssh 접속편하게 관리 (aws ec2) (0) | 2022.08.31 |
댓글