コンテンツにスキップ

🔐 CAA レコード確認

CAA(Certification Authority Authorization)は、どの認証局に SSL/TLS 証明書発行を許可するかを DNS で宣言する仕組みです。誤発行リスクの低減に有効。issue / issuewild / iodef の 3 タグを表示します。

完全無料 登録不要 サーバー処理 ログ・DB 保存なし レート制限あり 5 言語対応 ダークモード

⚠️ 診断対象のサーバーには DevLab のサーバーからアクセスが行われます。プライベート IP・ローカルホストは対象外です。

📖 この診断で分かること

CAA レコードは「このドメインの証明書を発行してよい認証局はここだけだ」と DNS で宣言するものです。CA/Browser Forum の Baseline Requirements により、認証局は証明書を発行する直前に必ず CAA を確認する義務を負っています。この診断はそのレコードと、継承元になる親ドメインの CAA を取得します。ただしすでに発行済みの証明書を取り消す効果はありません。誤発行の検知は CT ログの担当です。

判定項目 何を見ているか 引っかかったときの対処
CAA レコードが無い 無いことはエラーではありませんが、意味は「世界中のどの認証局が発行しても構わない」です。ドメイン管理者の意図しない CA から証明書が出ても、仕組みとして止まりません。逆に言えば、CAA を 1 行書くだけで発行できる CA を絞り込めます。 使っている CA の識別子を正確に書きます。example.com. IN CAA 0 issue "letsencrypt.org" のような形です。識別子を間違えると次回の更新が黙って失敗し、証明書が切れます。主なものは letsencrypt.org / digicert.com / sectigo.com / pki.goog / amazon.com で、必ず各 CA の公式ドキュメントで確認してください。
issuewild を指定していない issuewild が無いときは issue の内容がワイルドカード証明書にも適用されます。つまり issue を許可している CA は *.example.com も発行できます。ワイルドカード証明書は 1 枚漏れるだけで全サブドメインが偽装されるため、必要としないなら明示的に禁じる価値があります。 ワイルドカードを使わないなら example.com. IN CAA 0 issuewild ";" と書きます。セミコロン 1 つが「どの CA にも許可しない」の意味です。特定の CA だけに許すなら 0 issuewild "digicert.com" のように書きます。
親ドメインの CAA が効いている CAA は問い合わせた名前に無ければ、見つかるまで親へ遡りますshop.example.com に CAA が無ければ example.com のものが適用されます。この継承のせいで、「サブドメインだけ別の CA を使いたいのに発行できない」という詰まり方をします。 サブドメインで別の CA を使うなら、そのサブドメイン自身に CAA を置きます(子に 1 件でもあれば親は見に行きません)。証明書の取得が「CAA record prevents issuance」で失敗したときは、まずこの継承を疑ってください。DNS 側で CNAME を張っている場合は、CNAME 先の名前で CAA が評価される点にも注意が必要です。

CAA の内容自体は DNS で平文配布されるため、DNS を偽装できる攻撃者は CAA も偽装できます。実効的な防御にするには DNSSEC と併用してください。また CAA は「発行させない」仕組みであって「誤発行に気付く」仕組みではありません。実際に自分のドメイン名で発行された証明書を監視したいなら、Certificate Transparency ログを購読する(crt.sh の監視や Cert Spotter などの通知サービス)のが唯一確実な方法です。

🔗 関連ツール