AZ Tools

CAA レコードビルダー (DNS 認証局権限制限)

ネットワーク

CAA レコード (RFC 8659、旧 6844) は DNS TXT 系のレコードで、公開 CA に対しどの CA が当該ドメインの証明書を発行してよいかを伝えます。CA/Browser Forum Baseline Requirements に従い、すべての CA は発行直前に CAA を確認しなければならず、レコードが存在し自分が列挙されていない場合は拒否します。これは小さいですが強力な、不正・誤設定発行への防御で、無料です。3 つのタグ: `issue` は通常証明書、`issuewild` はワイルドカード証明書 (なければ issue と同等)、`iodef` はインシデント通知先 (mailto:/https:)。各レコードにフラグバイトがあり、critical ビット (128) を立てると CA は関連パラメータを理解できない場合に拒否します。本ツールはレコードを構築し 2 つの形式で出力: BIND ゾーンファイル文法 (マスターゾーンに貼り付け)、tag/value 分割行 (そう尋ねるコントロールパネル向け)。よく使う CA リストから Let's Encrypt, DigiCert, Sectigo, Google, Amazon などをワンクリック追加。特殊値 `;` は「すべての CA を拒否」 — 現状証明書を発行しない場合の強力なデフォルト。

レコード

タグ
タグ
タグ

よく使う CA を追加 (issue として)

BIND ゾーン形式

example.com. IN CAA 0 issue "letsencrypt.org"
example.com. IN CAA 0 issuewild "letsencrypt.org"
example.com. IN CAA 0 iodef "mailto:security@example.com"

タグ / 値 行

フラグ・タグ・値を別々に求める DNS コントロールパネル用。形式: flags tag value

  0  issue      "letsencrypt.org"
  0  issuewild  "letsencrypt.org"
  0  iodef      "mailto:security@example.com"
CAA レコードについて

CAA は Certificate Authority Authorization (RFC 8659)。公開 CA に当該ドメインの証明書を発行してよいかを伝える DNS レコード。CA は発行ごとに CAA を確認し、列挙されていなければ拒否します。本ツールは 2 つの出力形式: 適切なエスケープ付きで直接ゾーンファイルに貼れる BIND 文法、コントロールパネル (Cloudflare、Route53 等) 向けの flags / tag / value テーブル。issue や issuewild の特殊値 `;` は「すべての CA を拒否」 — 現在 TLS を使わない場合の強力なデフォルト。CAA は階層的: apex のレコードが、より具体的な CAA セットが下位になければすべてのサブドメインをカバー。CA のキャッシュ効果でレコードが完全伝播するまで最大 8 時間。

使い方

  1. ドメイン (apex またはサブドメイン) を入力。CAA は葉から上へ確認されるので、apex に設定すれば通常すべてカバー。
  2. よく使う CA ボタンを押してスターターの `issue` レコードを追加。タグ・値・critical フラグを必要に応じて編集。
  3. ワイルドカードを発行する予定なら `issuewild` レコードを追加。不要なら省略 — `issue` だけではワイルドカードをカバーしません。
  4. CA がポリシー違反を通知できるよう mailto:/https: アドレスの `iodef` レコードを追加。
  5. BIND 出力をゾーンファイルに貼り付け (コントロールパネルが tag・value を別々に求めるなら行形式を使用)。

よくある質問

CAA レコードはどこにホスティング?
保護したい同じドメイン。CAA 検索は要求名から apex まで上に辿ります — `api.example.com` の証明書要求は `api.example.com`、次に `example.com`、次にルート。多くの人は apex に 1 つの CAA セットを置きすべてのサブドメインをカバーします。サブドメイン固有の CAA はそこで異なるポリシーを望むときだけ必要。
`issue letsencrypt.org` は他 CA のワイルドカード発行も止めますか?
はい — `issue` レコードがあり `issuewild` がなければ、`issue` がワイルドカードも制限します。しかし `issuewild` レコードが 1 つでもあれば、ワイルドカードについてはそちらが優先。最も安全なパターンは、通常もワイルドカードも欲しければ両方明示、ワイルドカードが絶対不要なら `issue` だけ追加。通常を許可しつつワイルドカードを拒否するときは `issuewild` に `;` が一般的。
critical フラグの役割?
ビット 7 (値 128) が issuer-critical フラグ。未知のタグに立っていると CA は発行を拒否しなければなりません。今日は `issue`、`issuewild`、`iodef` しか定義されておらず、critical は主に将来互換性に影響。通常設定では切る (flags = 0)。すべての CA が理解すべきタグを意図的に指定する場合のみ 128 を使用。
CA が新 CAA レコードを反映するまで?
Baseline Requirements により、CA は発行時点で CAA を確認し、以前の値のキャッシュ TTL は最大 8 時間。なので新レコードがすべての CA で完全に有効になるまで最大 8 時間。初期設定時、キャッシュされた否定値が発行を妨げないよう TTL を 5-60 分にし、後で増やしましょう。
DNSSEC は CAA に影響?
ゾーンが DNSSEC 署名されていれば CA は署名を検証する必要があり、署名されていない応答は欠落とみなされます。誤設定の DNSSEC は CAA 確認を壊し証明書更新を止め得ます。CAA 強制に頼る前に dnsviz.net 等でゾーンを検証してください。

関連ツール