``` DNS-Persist-01:一种基于DNS的挑战验证新模型 ```
DNS-Persist-01: A New Model for DNS-Based Challenge Validation

原始链接: https://letsencrypt.org/2026/02/18/dns-persist-01.html

Let’s Encrypt 正在推出 **DNS-PERSIST-01**,这是一种新的 ACME 挑战类型,旨在简化证书验证,尤其是在通配符证书和不希望频繁更新 DNS 的环境中。目前,**DNS-01** 挑战需要使用临时 DNS 记录重复证明域名控制权,导致传播延迟以及分发 DNS 凭据的需求。 **DNS-PERSIST-01** 用单个、持久的 DNS 记录取代了这一点,该记录授权 Let’s Encrypt(以及潜在的其他 CA)为域名颁发证书。该记录将授权直接链接到特定的 ACME 帐户,通过减少对广泛 DNS 写入访问的需求来提高安全性。 用户可以选择为授权设置到期日期。虽然 **DNS-PERSIST-01** 提供了更大的操作便利性,但它将安全重点转移到保护 ACME 帐户密钥上。支持正在推出中,首先在 Pebble(Let’s Encrypt 的 CA 软件)和 lego-cli 客户端实现中,预计于 2026 年第一季度末进行分阶段部署,并在 2026 年第二季度全面推广。

一项新的Let's Encrypt提案,DNS-Persist-01,旨在提高基于DNS的挑战验证在SSL证书签发中的可靠性。目前,通过DNS验证域名所有权可能比较脆弱。这种新方法试图解决这个问题。 然而,该提案引发了隐私问题。它要求在DNS记录中直接暴露Let's Encrypt账户标识符。虽然账户*密钥*已经受到保护,但评论员担心暴露用户名(或账户ID)会产生新的攻击向量。这些信息可能被用于关联跨站点的凭据,或者被Shodan等服务索引,扩大潜在泄露的范围。 建议使用随机生成的ID代替账户标识符,以维护隐私,同时仍然能够进行验证。该核心优势——更强大的DNS挑战流程——受到赞赏,但隐私影响是一个重要的讨论点。
相关文章

原文

When you request a certificate from Let’s Encrypt, our servers validate that you control the hostnames in that certificate using ACME challenges. For subscribers who need wildcard certificates or who prefer not to expose infrastructure to the public Internet, the DNS-01 challenge type has long been the only choice. DNS-01 works well. It is widely supported and battle-tested, but it comes with operational costs: DNS propagation delays, recurring DNS updates at renewal time, and automation that often requires distributing DNS credentials throughout your infrastructure.

We are implementing support for a new ACME challenge type, DNS-PERSIST-01, based on a new IETF draft specification. As the name implies, it uses DNS as the validation mechanism, but replaces repeated demonstrations of control with a persistent authorization record bound to a specific ACME account and CA. The draft describes this method as being “particularly suited for environments where traditional challenge methods are impractical, such as IoT deployments, multi-tenant platforms, and scenarios requiring batch certificate operations”.

DNS-01 Proves Control Repeatedly

With DNS-01, validation relies on a one-time token generated by us. Your ACME client publishes a TXT record containing that token at _acme-challenge.<YOUR_DOMAIN>, and we query DNS to confirm that it matches the expected value. Because each authorization requires a new token, DNS updates become part of the issuance workflow. The benefit is that each successful validation provides fresh proof that you currently control DNS for the name being issued.

In practice, this often means DNS API credentials live somewhere in your issuance pipeline, validation attempts involve waiting for DNS propagation, and DNS changes happen frequently — sometimes many times per day in large deployments. Many subscribers accept these tradeoffs, but others would prefer to keep DNS updates and sensitive credentials out of their issuance path.

DNS-PERSIST-01 Authorizes Persistently

DNS-PERSIST-01 approaches validation differently. Instead of publishing a new challenge record for each issuance, you publish a standing authorization in the form of a TXT record that identifies both the CA and the specific ACME account you authorize to issue for this domain.

For the hostname example.com, the record would live at _validation-persist.example.com:

_validation-persist.example.com. IN TXT (
  "letsencrypt.org;"
  " accounturi=https://acme-v02.api.letsencrypt.org/acme/acct/1234567890"
)

Once this record exists, it can be reused for new issuance and all subsequent renewals. Operationally, this removes DNS changes from the critical path.

Security and Operational Tradeoffs

With DNS-01, the sensitive asset is DNS write access. In many deployments, DNS API credentials are distributed throughout issuance and renewal pipelines, increasing the number of places an attacker might compromise them. DNS-PERSIST-01 instead binds authorization directly to an ACME account, allowing DNS write access to remain more tightly controlled after initial setup. The tradeoff is that, because the authorization record persists over time, protecting the ACME account key becomes the central concern.

Controlling Scope and Lifetime

DNS-PERSIST-01 also introduces explicit scope controls. Without additional parameters, authorization applies only to the validated Fully Qualified Domain Name (FQDN) and remains valid indefinitely.

Wildcard Certificates

Adding policy=wildcard broadens the authorization scope to include the validated FQDN, wildcard certificates such as *.example.com, and subdomains whose suffix matches the validated FQDN:

_validation-persist.example.com. IN TXT (
  "letsencrypt.org;"
  " accounturi=https://acme-v02.api.letsencrypt.org/acme/acct/1234567890;"
  " policy=wildcard"
)

Optional Expiration

Subscribers who aren’t comfortable with authorization persisting indefinitely can include an optional persistUntil timestamp. This limits how long the record may be used for new validations, but also means it must be updated or replaced before it expires. Anyone using this feature should ensure they have adequate reminders or monitoring in place so that authorization does not expire unexpectedly. The timestamp is expressed as UTC seconds since 1970-01-01:

_validation-persist.example.com. IN TXT (
  "letsencrypt.org;"
  " accounturi=https://acme-v02.api.letsencrypt.org/acme/acct/1234567890;"
  " persistUntil=1767225600"
)

Authorizing Multiple CAs

Multiple CAs can be simultaneously authorized by publishing multiple TXT records at _validation-persist.<YOUR_DOMAIN>, each containing the issuer-domain-name of the CA you intend to authorize. During validation, each CA queries the same DNS label and evaluates only the records that match its own issuer-domain-name.

Rollout Timeline

The CA/Browser Forum ballot SC-088v3, defining “3.2.2.4.22 DNS TXT Record with Persistent Value”, passed unanimously in October 2025, and the IETF ACME working group adopted the draft that same month. While the document remains an active IETF draft, the core mechanisms described here are not expected to change substantially.

Support for the draft specification is available now in Pebble, a miniature version of Boulder, our production CA software. Work is also in progress on a lego-cli client implementation to make it easier for subscribers to experiment with and adopt. Staging rollout is planned for late Q1 2026, with a production rollout targeted for some time in Q2 2026.

联系我们 contact @ memedata.com