πŸ”’

DNS-PERSIST-01은 μ–΄λ–»κ²Œ λ™μž‘ν•˜λ‚˜?

Let's Encrypt의 지속적 DNS 인증 λ ˆμ½”λ“œλ‘œ 반볡 검증 제거

κΈ°μ‘΄ DNS-01 μ±Œλ¦°μ§€λŠ” μΈμ¦μ„œλ₯Ό λ°œκΈ‰ν•˜κ±°λ‚˜ κ°±μ‹ ν•  λ•Œλ§ˆλ‹€ _acme-challenge. TXT λ ˆμ½”λ“œλ₯Ό μƒˆλ‘œ 생성해야 ν–ˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό μœ„ν•΄ DNS API 자격증λͺ…을 ACME ν΄λΌμ΄μ–ΈνŠΈμ— μ œκ³΅ν•΄μ•Ό ν•˜κ³ , DNS μ „νŒŒ 지연도 λ¬Έμ œμ˜€μŠ΅λ‹ˆλ‹€. DNS-PERSIST-01은 _validation-persist.example.com TXT λ ˆμ½”λ“œμ— CA의 URI와 ACME 계정 URIλ₯Ό ν•œ 번만 μ„€μ •ν•˜λ©΄, 이후 μΈμ¦μ„œ λ°œκΈ‰/κ°±μ‹  μ‹œ CAκ°€ 이 λ ˆμ½”λ“œλ₯Ό ν™•μΈν•˜μ—¬ 도메인 μ†Œμœ κΆŒμ„ μΈμ¦ν•©λ‹ˆλ‹€. DNS 변경이 λ°œκΈ‰ κ²½λ‘œμ—μ„œ μ™„μ „νžˆ μ œκ±°λ˜μ–΄, DNS API 자격증λͺ… λ…ΈμΆœ 없이 μžλ™ 갱신이 κ°€λŠ₯ν•΄μ§‘λ‹ˆλ‹€.

ꡬ쑰 λ‹€μ΄μ–΄κ·Έλž¨

κΈ°μ‘΄ DNS-01 방식 (맀번 반볡)
πŸ–₯️
ACME Client
토큰 μš”μ²­
πŸ›οΈ
Let's Encrypt
TXT 검증
🌐
DNS Server
_acme-challenge.
맀번 λ³€κ²½ ν•„μš”!
VS
DNS-PERSIST-01 방식 (ν•œ 번 μ„€μ •, 계속 μž¬μ‚¬μš©)
πŸ–₯️
ACME Client
certbot λ“±
λ°œκΈ‰ μš”μ²­ DNS λ³€κ²½ μ—†μŒ!
πŸ›οΈ
Let's Encrypt CA
계정 URI λŒ€μ‘°
TXT 쑰회
🌐
DNS Server
_validation-persist.
ν•œ 번 μ„€μ • OK
핡심: _validation-persist. TXT λ ˆμ½”λ“œμ— CA + 계정 URIλ₯Ό ν•œ 번만 μ„€μ •ν•˜λ©΄,
이후 λ°œκΈ‰/κ°±μ‹  μ‹œ DNS API 호좜 없이 인증 μ™„λ£Œ
# TXT λ ˆμ½”λ“œ μ˜ˆμ‹œ
_validation-persist.example.com. TXT
  "acme-challenge=persist;
   ca=https://acme-v02.api.letsencrypt.org/directory;
   account=https://acme-v02.api.letsencrypt.org/acct/12345;
   policy=wildcard;
   persistUntil=2027-01-01T00:00:00Z"
μ£Όμš” μ˜΅μ…˜ μ„€λͺ…
ca ν—ˆμš©ν•  CA의 ACME directory URL (μ—¬λŸ¬ CA λ™μ‹œ ν—ˆμš© κ°€λŠ₯)
account μΈμ¦μ„œ λ°œκΈ‰μ„ ν—ˆμš©ν•  ACME 계정 URI
policy wildcard: ν•˜μœ„ 도메인 포함, exact: ν•΄λ‹Ή λ„λ©”μΈλ§Œ
persistUntil 이 인증 λ ˆμ½”λ“œμ˜ 유효 κΈ°κ°„ (만료 ν›„ μž¬μ„€μ • ν•„μš”)

λ™μž‘ 흐름

1

κΈ°μ‘΄ DNS-01: λ°œκΈ‰ μš”μ²­ β†’ CAκ°€ 랜덀 토큰 λ°œκΈ‰ β†’ _acme-challenge. TXT λ ˆμ½”λ“œ 생성 β†’ DNS μ „νŒŒ λŒ€κΈ° β†’ 검증

2

_validation-persist.example.com TXT λ ˆμ½”λ“œμ— CA URI + ACME 계정 URI μ„€μ • (ν•œ 번만)

3

ACME ν΄λΌμ΄μ–ΈνŠΈκ°€ Let's Encrypt에 μΈμ¦μ„œ λ°œκΈ‰ μš”μ²­

4

Let's Encryptκ°€ _validation-persist. TXT λ ˆμ½”λ“œ 쑰회 β†’ 계정 일치 확인

5

도메인 μ†Œμœ κΆŒ 인증 μ™„λ£Œ β†’ μΈμ¦μ„œ λ°œκΈ‰ (DNS λ³€κ²½ μ—†μŒ)

6

κ°±μ‹  μ‹œμ—λ„ 동일 λ ˆμ½”λ“œ μž¬μ‚¬μš© β†’ DNS API 호좜 λΆˆν•„μš”

μž₯점

  • μΈμ¦μ„œ λ°œκΈ‰/κ°±μ‹  μ‹œ DNS λ³€κ²½ λΆˆν•„μš”
  • DNS API 자격증λͺ… λ…ΈμΆœ μœ„ν—˜ κ°μ†Œ
  • μ™€μΌλ“œμΉ΄λ“œ μΈμ¦μ„œμ—λ„ 적용 κ°€λŠ₯
  • persistUntil둜 인증 만료 μ‹œμ  μ œμ–΄
  • μ—¬λŸ¬ CAλ₯Ό λ™μ‹œμ— ν—ˆμš© κ°€λŠ₯

단점

  • ACME 계정 ν‚€ λ³΄ν˜Έκ°€ 더 μ€‘μš”ν•΄μ§ (ν‚€ 유좜 = 무단 λ°œκΈ‰ κ°€λŠ₯)
  • 2026 Q2 이후 Let's Encrypt 지원 μ˜ˆμ • (아직 λŒ€κΈ°)
  • DNSSEC ν•„μˆ˜κ°€ μ•„λ‹ˆμ–΄μ„œ DNS μŠ€ν‘Έν•‘ μœ„ν—˜ 쑴재
  • 지속적 μΈμ¦μ΄λ―€λ‘œ ν‚€ 유좜 μ‹œ μ¦‰μ‹œ λ ˆμ½”λ“œ 제거 ν•„μš”

μ‚¬μš© 사둀

IoT λ””λ°”μ΄μŠ€ λŒ€λŸ‰ μΈμ¦μ„œ 배포 λ©€ν‹°ν…Œλ„ŒνŠΈ SaaS ν”Œλž«νΌ (고객 도메인 μΈμ¦μ„œ) λŒ€λŸ‰ μΈμ¦μ„œ μžλ™ λ°œκΈ‰/κ°±μ‹  LAN λ‚΄λΆ€ μ„œλ²„ μΈμ¦μ„œ (DNS API μ ‘κ·Ό λΆˆκ°€ ν™˜κ²½) ν™ˆλž©/μžκ°€ ν˜ΈμŠ€νŒ… μžλ™ν™”