CAA レコードの書き方

このドメインの証明書を発行してよい認証局を指定するレコードです。

名前種別値TTL
(空欄)CAA0 issue "letsencrypt.org"3600

CAA が 1 件も無ければ、どの認証局も証明書を発行できます。

値の読み方

  • 0フラグ。通常は 0 です。
  • issueタグ。issue は証明書の発行許可、issuewild はワイルドカード証明書の発行許可、iodef は違反の通知先です。
  • "letsencrypt.org"許可する認証局のドメイン名。二重引用符で囲みます。認証局の案内に記載があります。

こう書く

やりたいこと名前種別値
1 つの認証局だけに許可する(空欄)CAA0 issue "letsencrypt.org"
2 つの認証局に許可する(空欄)CAA0 issue "letsencrypt.org"
(空欄)CAA0 issue "ca.example.net"
ワイルドカード証明書は別の認証局に限る(空欄)CAA0 issuewild "ca.example.net"
どの認証局にも発行させない(空欄)CAA0 issue ";"
違反の通知をメールで受け取る(空欄)CAA0 iodef "mailto:security@example.jp"

TTL はすべて 3600 の例です。ルートドメインに置いた CAA は、サブドメインの証明書にも効きます。

間違えやすい点

  • ✕使っている認証局を書き漏らすホスティングやサービス側が自動で発行する証明書も対象です。漏れた認証局は発行も更新もできなくなります。
  • ✕値に URL を書く、引用符を外すhttps://letsencrypt.org ではなく、"letsencrypt.org" と書きます。
  • ✕サブドメインにも CAA を置き、ルートの許可が効くと思うサブドメインに CAA があると、そのサブドメインではルートの CAA は見られません。必要な認証局をすべて書きます。

設定後の確認

コマンドで問い合わせると、置いた CAA がそのまま返ります。

dig example.jp CAA +short
0 issue "letsencrypt.org"

証明書そのものの期限や発行元は SSL 証明書チェックで確認できます。

よくある質問

CAA は必ず設定するものですか?

必須ではありません。置かなければ、どの認証局も発行できる状態のままです。発行元を限りたいときに設定します。

issuewild を置かないとワイルドカード証明書はどうなりますか?

issue の指定がそのまま使われます。issue で許可した認証局は、ワイルドカード証明書も発行できます。