DNS 認証(DNS-01)で TXT レコードを設定したのに証明書が発行されない場合、主な原因は DNS キャッシュの反映待ちまたは TXT レコードの設定ミスです。本ページでは原因と対処法、および確認方法を解説します。
- TXT レコードが 正しいドメイン名(_dnsauth.〜)に設定されているか
- TXT レコードの値に 余分な空白・引用符が含まれていないか
- DNS が 外部から名前解決可能か
- キャッシュの反映に時間がかかっていないか
🔍 DNS 認証の仕組み
DNS 認証では、認証局が以下の流れでドメイン所有を確認します。
-
申請時に TXT レコード値を取得
申請時に追加すべき TXT レコード名と値が当社から提示されます。
レコード名:_dnsauth.example.com タイプ:TXT 値:認証用ハッシュ値(申請ごとに異なる) -
DNS に TXT レコードを追加
ドメインの DNS ゾーンに上記の TXT レコードを追加します。レジストラまたは DNS プロバイダの管理画面で設定します。
-
DNS の反映を待つ
追加した TXT レコードが世界中の DNS サーバから取得可能になるまで待ちます。
-
認証局が DNS を検証
認証局が外部から DNS を引き、TXT レコードの内容を確認します。
-
検証成功 → 証明書発行
検証が通れば、証明書が自動発行されます。
🆘 よくある失敗パターンと対処法
1. TXT レコードの反映待ち
DNS の変更は、即座に世界中に反映されるわけではありません。DNS キャッシュの仕組みにより、設定済みの TTL(Time To Live)が切れるまで古い情報が返される場合があります。
| 項目 | 内容 |
|---|---|
| TTL の影響 | キャッシュは TTL の時間だけ残る(設定値:300 秒 / 3600 秒 等) |
| 反映までの目安 | TTL を短く設定していれば数分、長いと最大 72 時間 |
| 新規 TXT レコード追加 | キャッシュなしのため通常は早く反映される |
| 既存 TXT レコード変更 | 旧キャッシュが残り、反映に時間がかかる |
「DNS の浸透期間」と呼ばれることもありますが、技術的には「キャッシュ TTL の経過時間」が正確です。TTL を 300 秒(5 分)に設定していれば、最長で 5 分後には新しい値が世界中で取得可能になります。
ただし、上位 DNS サーバや一部の ISP の DNS リゾルバで TTL を独自に長く設定している場合や、認証局のリゾルバが古いキャッシュを保持している場合は、さらに時間がかかることがあります。
2. TXT レコード名の間違い
TXT レコードのレコード名(ホスト名)を間違えるのが、最も多い失敗パターンです。
| 申請コモンネーム | 追加すべき TXT レコード名 |
|---|---|
example.com |
_dnsauth.example.com |
www.example.com |
_dnsauth.www.example.com |
*.example.com(ワイルドカード) |
_dnsauth.example.com |
shop.example.com |
_dnsauth.shop.example.com |
DNS プロバイダの管理画面で TXT レコードを追加する際、入力欄に「ホスト名」と「ドメイン名」のどちらを入れるかが異なります。
例:_dnsauth.example.com の TXT レコードを追加する場合
- ホスト名欄に
_dnsauthのみ入力(ドメインは自動補完される) - ホスト名欄に
_dnsauth.example.com全体を入力
DNS プロバイダの仕様に従って入力してください。
3. TXT レコード値の誤り
TXT レコードの値に余分な空白・改行・引用符が含まれていると、認証エラーとなります。
| 状況 | 対処 |
|---|---|
| 前後に空白 | すべての空白を除去 |
| 引用符が混入 | 値そのものに引用符が含まれないか確認 |
| 改行コード混入 | 値は 1 行に収める |
| 大文字小文字の違い | 申請時の値をそのままコピーペースト |
| 古い認証値が残存 | キャンセル後の再申請では新しい値で設定し直す |
4. ワイルドカード証明書での誤解
ワイルドカード証明書(*.example.com)では、TXT レコードを親ドメイン(_dnsauth.example.com)に設定します。* を含むレコード名(_dnsauth.*.example.com)ではないことに注意してください。
🔧 動作確認方法
TXT レコードが正しく公開されているか、以下の方法で確認できます。
方法 1:dig コマンドで確認(Linux / macOS)
# 自分の DNS サーバから引く
dig TXT _dnsauth.example.com
# Google Public DNS から引く(キャッシュなしで確認)
dig @8.8.8.8 TXT _dnsauth.example.com
# Cloudflare DNS から引く
dig @1.1.1.1 TXT _dnsauth.example.com
# 権威 DNS から直接引く
dig +trace TXT _dnsauth.example.com
方法 2:nslookup で確認(Windows)
# コマンドプロンプトで実行
nslookup -type=TXT _dnsauth.example.com 8.8.8.8
方法 3:Web ツールで確認
以下のオンラインツールから世界各地の DNS サーバでの解決状況を確認できます。
- whatsmydns.net ─ 世界中の DNS サーバから一括検索
- dnschecker.org ─ 同様の機能
- Google Admin Toolbox ─ Google 提供の DNS チェック
📊 反映時間を短縮するコツ
| コツ | 内容 |
|---|---|
| TTL を短く設定 | TXT レコードの TTL を 300 秒(5 分)程度に設定 |
| 権威 DNS で直接確認 | dig や nslookup で権威 DNS に直接問い合わせ |
| キャッシュ DNS を避ける | Google DNS(8.8.8.8)等のキャッシュなしの DNS で確認 |
| 事前に TTL 変更 | DNS 設定前にあらかじめ TTL を短く変更しておく |
🔄 待てない場合の認証方式変更
DNS の反映を待てない場合は、別の認証方式へ切り替えるのが確実です。
| 認証方式 | 適している環境 |
|---|---|
| ファイル認証(HTTP-01) | Web サーバが既に稼働している環境(注意点) |
| メール認証 | admin@ 等の管理用メールが受信可能 |
| DNS 認証(現在) | DNS の TTL が短く設定されている / ワイルドカードを取得 |
セキュリティ上、一度ご提出された CSR は再利用できません。認証方式を切り替える際は、申請をキャンセルしてから新しい CSR を再生成し、再度申請してください。
🤖 ACME 自動更新ならクラウド DNS で完全自動
ACME プロトコルでは、DNS の TXT レコード追加・削除も自動化できます。主要 DNS プロバイダ(Cloudflare・Route 53・Google Cloud DNS 等)の API と連携することで、認証から発行・配置まですべて無人で完結します。
| DNS プロバイダ | ACME 連携 |
|---|---|
| Cloudflare | ✅ API トークンで連携可能 |
| AWS Route 53 | ✅ IAM キーで連携可能 |
| Google Cloud DNS | ✅ サービスアカウントで連携可能 |
| Azure DNS | ✅ Service Principal で連携可能 |
| 主要な国内 DNS プロバイダ | 各社により対応状況が異なる |
クラウド DNS と ACME クライアントを連携すれば、DNS の TXT レコード追加・削除も自動で実行されます。認証完了後は自動的に TXT レコードがクリーンアップされるため、DNS ゾーンも常にきれいに保たれます。
当グループ運営の FujiSSL は、業界稀少の OV ACME 対応で、ワイルドカード証明書の完全自動運用も実現できます。
💡 関連するご質問
| ご質問 | 対応 |
|---|---|
| TXT レコードはいつまで残す? | 認証完了後は削除して問題ありません |
| ファイル認証で失敗する | こちらをご参照ください |
| メール認証へ切り替えたい | 申請をキャンセルし、新 CSR で再申請 |
| ワイルドカード証明書はどの認証? | DNS 認証のみ可能(業界ルール) |
| キャンセルしたい | お問い合わせフォームからご連絡ください |