DNS-PERSIST-01が解決する問題
Let’s EncryptでSSL証明書を取得・更新している方なら、DNS-01チャレンジの面倒さを一度は経験したことがあるのではないでしょうか。ワイルドカード証明書が必要な場面や、サーバーを公開インターネットに露出させたくない環境では、DNS-01が事実上唯一の選択肢でした。
ただ、DNS-01には厄介な問題がいくつかあります。更新のたびにDNSレコードを書き換える必要があること、DNS伝播の待ち時間が発生すること、そして何よりDNS APIの認証情報を発行パイプラインに配置しなければならないことです。
2026年2月18日、Let’s Encryptが新しいACMEチャレンジタイプ「DNS-PERSIST-01」のサポートを発表しました。これはIETFのドラフト仕様に基づいたもので、一度だけDNSレコードを設定すれば、以降の更新でDNS変更が不要になる仕組みです。
DNS-01との根本的な違い
従来のDNS-01では、証明書の発行や更新のたびに新しいトークンが生成され、それを_acme-challenge.example.comというTXTレコードとして公開する必要がありました。つまり、証明書のライフサイクルにDNS変更が密接に結びついていたわけです。
DNS-PERSIST-01は発想が根本的に異なります。ドメインのDNSに「このACMEアカウントに、このCAからの証明書発行を許可する」という永続的な認可レコードを1回だけ設定します。具体的にはこんな感じのTXTレコードです。
_validation-persist.example.com. IN TXT (
"letsencrypt.org;"
" accounturi=https://acme-v02.api.letsencrypt.org/acme/acct/1234567890"
)
このレコードが存在する限り、証明書の更新時にDNSを触る必要がなくなります。
セキュリティのトレードオフ
DNS-01では「DNS書き込みアクセス」が重要な資産でした。認証情報がパイプライン全体に分散するリスクがあったんですよね。一方DNS-PERSIST-01では、ACMEアカウントキーの保護が中心的な関心事になります。
初回設定後はDNS認証情報をパイプラインから排除できるため、攻撃対象が絞られるメリットがあります。ただし、認可レコードが永続的に存在するため、ACMEアカウントキーが漏洩した場合のリスクは従来より大きくなります。
このあたりのトレードオフは、パスキーの認証モデルと似たところがあると感じました。便利さとセキュリティのバランスをどう取るかは、環境によって判断が分かれそうです。
ワイルドカード証明書とスコープ制御
DNS-PERSIST-01では、認可のスコープを細かく制御できる仕組みも用意されています。デフォルトでは、認可はそのFQDNだけに適用されます。
ワイルドカード証明書が必要な場合は、policy=wildcardパラメータを追加します。
_validation-persist.example.com. IN TXT (
"letsencrypt.org;"
" accounturi=https://acme-v02.api.letsencrypt.org/acme/acct/1234567890;"
" policy=wildcard"
)
これで*.example.comのワイルドカード証明書も発行可能になります。さらに、persistUntilタイムスタンプを指定することで、認可の有効期限を設定することもできます。無期限が不安な方にはありがたい機能ですね。
どんな環境で効果的か
DNS-PERSIST-01が特に威力を発揮するのは、以下のような環境です。
まずIoTデバイス。数百台のデバイスにそれぞれ証明書を発行する必要がある環境では、DNS-01の繰り返しDNS更新は現実的ではありません。一度認可レコードを設定すれば、あとはACMEクライアントだけで完結します。
次にマルチテナントプラットフォーム。SaaS事業者がカスタムドメインの証明書を大量に管理する場面では、DNS変更の頻度を激減させることができます。
そしてバッチ証明書運用。Google Trust Servicesのような他のCA と併用する場合でも、CA・アカウントごとに別々の認可レコードを設定できるので柔軟です。
既存のcertbot環境への影響
現時点ではLet’s Encryptが「実装中」と発表した段階なので、certbotやその他のACMEクライアントがDNS-PERSIST-01に対応するにはもう少し時間がかかるかもしれません。ただ、IETF仕様が策定されているため、主要なACMEクライアントは順次対応していくと思われます。
既存のDNS-01環境からの移行は段階的に行えます。DNS-PERSIST-01の認可レコードを追加しつつ、既存のDNS-01設定もそのまま残しておけるので、切り替えリスクは低いはずです。
まとめ
DNS-PERSIST-01は、SSL証明書管理の運用負荷を大幅に軽減する可能性を持った新しい仕組みです。特に大規模環境やIoT環境では、DNS変更をクリティカルパスから除外できるメリットは大きいと感じます。
詳細はLet’s Encrypt公式ブログで確認できます。SSL証明書の自動化に取り組んでいる方は、Docker Hardened Imagesと組み合わせた運用も検討してみてはいかがでしょうか。
