Loading... # Let's Encrypt 发布 DNS-PERSIST-01 新挑战类型简化证书自动化 # 一、新闻概述 ## 1. 标题 Let's Encrypt 发布 DNS-PERSIST-01:基于 DNS 的持久化挑战验证新模型 ## 2. 发布时间 2026 年 2 月 18 日 ## 3. 来源 Let's Encrypt 官方博客 # 二、核心内容 ## 1. 事件摘要 ### A. 主要内容 Let's Encrypt 宣布正在实施支持一种全新的 ACME 挑战类型 DNS-PERSIST-01,该类型基于新的 IETF 草案规范。 ### B. 核心亮点 - 持久化授权记录,一次配置长期有效 - 无需每次续期时更新 DNS 记录 - 将授权直接绑定到 ACME 账户和 CA - 支持范围控制和可选过期时间 - 特别适合 IoT 部署、多租户平台和批量证书操作场景 ## 2. 关键信息 ### A. 版本信息 基于 IETF 草案规范:draft-ietf-acme-dns-persist-00 ### B. 重要数据 - CA/Browser Forum 投票 SC-088v3 于 2025 年 10 月全票通过 - IETF ACME 工作组于同月采纳该草案 - 预计 2026 年第一季度末在测试环境推出 - 生产环境预计 2026 年第二季度推出 ### C. 涉及技术 - ACME 协议 - DNS TXT 记录验证 - Pebble(Let's Encrypt 的 CA 软件 Boulder 的迷你版本) - lego-cli 客户端实现 ## 3. 背景介绍 ### A. 传统 DNS-01 挑战 DNS-01 挑战是 Let's Encrypt 提供的域名验证方式之一,特别适用于需要通配符证书或不愿将基础设施暴露到公网的用户。其工作原理是客户端在 DNS TXT 记录中发布 Let's Encrypt 生成的令牌,Let's Encrypt 通过查询 DNS 来验证域名控制权。 ### B. 存在的问题 传统 DNS-01 挑战虽然广泛支持且经过实战验证,但存在显著的运营成本: - DNS 传播延迟导致验证等待时间 - 每次续期都需要更新 DNS 记录 - 自动化流程通常需要在基础设施中分发 DNS 凭据 # 三、详细报道 ## 1. 主要内容 ### A. DNS-01 的重复验证机制 传统 DNS-01 挑战依赖 Let's Encrypt 生成的一次性令牌。ACME 客户端需要将包含该令牌的 TXT 记录发布到 _acme-challenge.<YOUR_DOMAIN>,Let's Encrypt 查询 DNS 确认值匹配。由于每次授权都需要新令牌,DNS 更新成为签发工作流程的必要环节。 优势在于每次成功验证都提供了当前控制域名 DNS 的新证明。但在实践中,这意味着: - DNS API 凭据存在于签发管道的某个位置 - 验证尝试涉及等待 DNS 传播 - DNS 变更频繁发生——大型部署中可能每天多次 ### B. DNS-PERSIST-01 的持久化授权机制 DNS-PERSIST-01 采用不同的验证方法。它不是为每次签发发布新的挑战记录,而是发布一个持久的授权 TXT 记录,标识允许为此域名签发证书的 CA 和特定 ACME 账户。 对于主机名 example.com,记录位于 _validation-persist.example.com: ```mermaid graph LR subgraph DNS_01["传统 DNS-01 流程"] A1[ACME 客户端] -->|每次签发/续期| B1[更新 _acme-challenge 记录] B1 --> C1[Let's Encrypt 验证] C1 -->|等待 DNS 传播| D1[颁发证书] end subgraph DNS_PERSIST_01["DNS-PERSIST-01 流程"] A2[ACME 客户端] -->|一次性配置| B2[设置 _validation-persist 记录] B2 --> C2[Let's Encrypt 验证] C2 -->|无需等待传播| D2[直接颁发证书] D2 -->|后续续期| D2 end ```  记录格式示例: ```mermaid graph TB A["_validation-persist.example.com. IN TXT"] --> B["letsencrypt.org;"] A --> C["accounturi=https://acme-v02.api.letsencrypt.org/acme/acct/1234567890"] style A fill:#e1f5ff style B fill:#fff3cd style C fill:#fff3cd ```  一旦该记录存在,就可以用于新的签发和所有后续续期,从操作上将 DNS 变更从关键路径中移除。 ## 2. 技术细节 ### A. 安全权衡 DNS-01 中的敏感资产是 DNS 写入权限。在许多部署中,DNS API 凭据分布在签发和续期管道中,增加了攻击者可能泄露它们的位置数量。DNS-PERSIST-01 将授权直接绑定到 ACME 账户,允许 DNS 写入权限在初始设置后保持更严格的控制。 权衡在于,由于授权记录随时间持续存在,保护 ACME 账户密钥成为核心关注点。 ### B. 范围和生命周期控制 DNS-PERSIST-01 引入了显式的作用域控制。默认情况下,授权仅适用于经过验证的完全限定域名(FQDN),并且无限期有效。 #### 通配符证书支持 添加 policy=wildcard 可将授权范围扩展到经过验证的 FQDNN、通配符证书(如 *.example.com)以及后缀与经过验证的 FQDN 匹配的子域名: ```mermaid graph TB A["_validation-persist.example.com. IN TXT"] --> B["letsencrypt.org;"] A --> C["accounturi=https://acme-v02.api.letsencrypt.org/acme/acct/1234567890;"] A --> D["policy=wildcard"] style A fill:#e1f5ff style B fill:#fff3cd style C fill:#fff3cd style D fill:#d4edda ```  #### 可选过期时间 不希望授权无限期持续的订阅者可以包含可选的 persistUntil 时间戳。这限制了记录可用于新验证的时长,但也意味着必须在过期前更新或替换记录。使用此功能的用户应确保有充分的提醒或监控机制,以防止授权意外过期。时间戳表示为自 1970-01-01 以来的 UTC 秒数: ```mermaid graph TB A["_validation-persist.example.com. IN TXT"] --> B["letsencrypt.org;"] A --> C["accounturi=https://acme-v02.api.letsencrypt.org/acme/acct/1234567890;"] A --> D["persistUntil=1767225600"] style A fill:#e1f5ff style B fill:#fff3cd style C fill:#fff3cd style D fill:#f8d7da ```  #### 多 CA 授权 可以通过在 _validation-persist.<YOUR_DOMAIN> 发布多个 TXT 记录来同时授权多个 CA,每个记录包含要授权的 CA 的 issuer-domain-name。在验证期间,每个 CA 查询相同的 DNS 标签并仅评估与其自己的 issuer-domain-name 匹配的记录。 ### C. 架构对比 ```mermaid graph TB subgraph 传统["传统 DNS-01 验证"] direction TB C1[客户端] -->|获取令牌| C2[更新 DNS TXT 记录] C2 -->|等待传播| C3[Let's Encrypt 验证] C3 -->|颁发证书| C4[证书签发] C4 -->|90天后| C5[需要续期] C5 --> C2 end subgraph 新方案["DNS-PERSIST-01 验证"] direction TB P1[客户端] -->|一次性| P2[设置持久授权记录] P2 --> P3[Let's Encrypt 验证] P3 -->|颁发证书| P4[证书签发] P4 -->|90天后| P5[需要续期] P5 -->|无需 DNS 更新| P3 end style 传统 fill:#fff3cd style 新方案 fill:#d4edda ```  ## 3. 数据与事实 ### A. 规范进展 - CA/Browser Forum 投票 SC-088v3 定义 3.2.2.4.22 DNS TXT Record with Persistent Value DCV 方法 - 2025 年 10 月全票通过 - IETF ACME 工作组同月采纳草案 ### B. 实现支持 - Pebble(Boulder 的迷你版本)现已支持 - lego-cli 客户端实现正在开发中 # 四、影响分析 ## 1. 行业影响 ### A. 技术趋势 - 从临时验证转向持久授权模式 - 减少对 DNS API 的依赖,降低凭据泄露风险 - 优化自动化证书管理流程 ### B. 标准化进展 IETF 草案虽然仍处于活跃状态,但描述的核心机制预计不会有实质性变化。 ## 2. 用户影响 ### A. 现有用户 - 可继续使用传统 DNS-01 挑战 - 迁移到 DNS-PERSIST-01 可简化操作流程 ### B. 潜在用户 特别适合以下场景: - IoT 设备部署(DNS 操作困难) - 多租户平台(统一授权管理) - 批量证书操作(减少 DNS 更新次数) ### C. 迁移考虑 - 需要一次性设置 DNS 记录 - ACME 账户密钥安全变得更重要 - 建议等待生产环境正式推出后再迁移关键业务 ## 3. 技术趋势 ### A. 证书管理演进 - 从频繁操作转向一次性配置 - 关注点从 DNS 操作转向账户安全 ### B. 生态影响 - 其他 CA 可能采纳类似机制 - ACME 客户端需要更新支持 # 五、各方反应 暂未收集到具体的社区反馈和评价。 # 六、相关链接 ## 1. 官方公告 - Let's Encrypt 博客原文 - IETF 草案:draft-ietf-acme-dns-persist-00 ## 2. 相关规范 - CA/Browser Forum 投票 SC-088v3 - ACME 挑战类型文档 ## 3. 技术资源 - Pebble 项目 - lego-cli 客户端 *** ## 参考资料 1. [DNS-PERSIST-01: A New Model for DNS-based Challenge Validation - Let's Encrypt](https://letsencrypt.org/2026/02/18/dns-persist-01.html) 最后修改:2026 年 02 月 19 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏