我們正在實施對一種新的 ACME 挑戰類型 DNS-PERSIST-01 的支援,該類型基於一份新的 IETF 草案規範。顧名思義,它使用 DNS 作為驗證機制,但用一個綁定到特定 ACME 帳戶和 CA 的持久授權記錄取代了重複的控制權證明。該草案將此方法描述為「特別適合傳統挑戰方法不切實際的環境,例如物聯網部署、多租戶平台以及需要批次憑證操作的場景」。

對於 DNS-01,驗證依賴於我們生成的一次性令牌。您的 ACME 用戶端會在 _acme-challenge.<YOUR_DOMAIN> 發布一個包含該令牌的 TXT 記錄,然後我們查詢 DNS 以確認其是否與預期值相符。由於每次授權都需要一個新令牌,因此 DNS 更新成為憑證發行工作流程的一部分。其好處是每次成功的驗證都提供了您目前控制正在發行名稱的 DNS 的最新證明。

DNS-PERSIST-01 採用不同的驗證方法。您不是為每次發行發布新的挑戰記錄,而是發布一個持久授權,形式為一個 TXT 記錄,該記錄識別您授權發行該網域憑證的 CA 和特定的 ACME 帳戶。

對於主機名稱 example.com,該記錄將位於 _validation-persist.example.com:

一旦此記錄存在,它就可以重複用於新的憑證發行和所有後續的續訂。在操作上,這將 DNS 變更從關鍵路徑中移除。

使用 DNS-01 時,敏感資產是 DNS 的寫入權限。在許多部署中,DNS API 憑證會分佈在整個憑證發行和續訂管道中,增加了攻擊者可能竊取它們的地點數量。DNS-PERSIST-01 則將授權直接綁定到 ACME 帳戶,允許在初始設定後,將 DNS 寫入權限保持更嚴格的控制。權衡是,由於授權記錄會隨著時間持續存在,保護 ACME 帳戶金鑰成為核心關注點。

DNS-PERSIST-01 還引入了明確的範圍控制。沒有額外的參數,授權僅適用於已驗證的完整網域名稱 (FQDN),並無限期有效。

添加 policy=wildcard 會將授權範圍擴大到包括已驗證的 FQDN、萬用字元憑證(例如 *.example.com)以及後綴與已驗證 FQDN 相符的子網域:

可以通過在 _validation-persist.<YOUR_DOMAIN> 發布多個 TXT 記錄來同時授權多個 CA,每個記錄包含您打算授權的 CA 的發行者網域名稱。在驗證期間,每個 CA 會查詢相同的 DNS 標籤,並且只評估與其自身發行者網域名稱相符的記錄。

CA/Browser Forum 的決議 SC-088v3,定義了「3.2.2.4.22 具有持久值的 DNS TXT 記錄」,於 2025 年 10 月一致通過,而 IETF ACME 工作組在同月採納了該草案。雖然該文件仍然是活躍的 IETF 草案,但這裡描述的核心機制預計不會發生實質性變化。