CAAレコードとは
CAAレコードは、ドメイン名について公開鍵証明書を発行してよい認証局や、関連する発行方針をDNSで示すリソースレコードです。正式名称はCertification Authority Authorization record(サーティフィケーション・オーソリティー・オーソライゼーション・レコード)です。
認証局は証明書を発行する前に、対象名へ適用されるCAA RRsetを確認します。制限するプロパティがあれば、発行要求がその方針に合う場合だけ発行できます。
CAAは「発行を許可できる認証局の範囲」を示しますが、ドメイン所有確認を省略させる許可証でも、既存証明書を失効させる命令でもありません。

一件のCAAは、Flags・Tag・Valueでできている
Flags処理フラグIssuer Criticalフラグは、未知の重要タグがあれば発行を止めるよう求める
issue通常証明書指定した認証局へ通常名の発行を許可する
issuewildワイルドカードワイルドカード名の発行許可を別に指定する
iodefインシデント報告違反や問題を通知する連絡先URIを示す
0 issue "ca.example"のように、先頭がFlags、次がTag、最後がValueです。値の追加パラメーターは認証局や利用仕様を確認します。通常証明書とワイルドカードの許可を分ける
issueは通常のFQDNを含む証明書、issuewildは*.example.testのようなワイルドカード名を含む証明書に使います。対象名にissuewildが一件でもあれば、ワイルドカード発行ではissueよりissuewildが優先されます。
複数の認証局を許可するなら、同じタグのCAAを複数置きます。空の発行者値を使うと該当種類の発行者を許可しない方針を表せます。管理画面の書式が引用符を含むかはDNS事業者ごとに確認します。
子から親へ探し、最初に見つかった集合で止まる
www.shop.example.testの証明書を発行する場合、その名前にCAAがなければshop.example.test、次にexample.testと親方向へ探します。最初にCAA RRsetが見つかった地点で探索を止め、その集合を適用します。
子に一件でもCAAを置くと、親のCAAへ追加するのではなく、子の集合が適用対象になります。CNAMEがある場合の探索もRFC 8659の規則に従います。意図せず親方針を上書きしないよう、子側の全許可先を記述します。
CAAは発行前の制限で、証明書の検証や失効とは別
CAAに許可した認証局名を書いても、その認証局は通常どおりドメイン管理権を検証します。CAAは「この認証局なら確認なしで発行してよい」とは述べません。反対に、CAAを後から厳しくしても、すでに有効な証明書が自動失効することはありません。
CAA応答が改ざんされる危険を減らすにはDNSSECが役立ちます。ただし、CAAはDNSSEC署名がないゾーンでも利用され、認証局はRFCの処理に従って問い合わせます。
仕様の確認資料:RFC 8659「DNS Certification Authority Authorization Resource Record」