用語辞典・DNS・ドメイン

CAAレコード

CAAレコードとは

CAAレコードは、ドメイン名について公開鍵証明書を発行してよい認証局や、関連する発行方針をDNSで示すリソースレコードです。正式名称はCertification Authority Authorization record(サーティフィケーション・オーソリティー・オーソライゼーション・レコード)です。

認証局は証明書を発行する前に、対象名へ適用されるCAA RRsetを確認します。制限するプロパティがあれば、発行要求がその方針に合う場合だけ発行できます。

CAAは「発行を許可できる認証局の範囲」を示しますが、ドメイン所有確認を省略させる許可証でも、既存証明書を失効させる命令でもありません。

対象名から親方向へ探し、最初に見つかったCAA集合を使う通常証明書とワイルドカードを分け、未知の重要プロパティは発行を止める
認証局が証明書発行前に対象ドメインから親方向へCAAレコードを探し、通常発行、ワイルドカード、報告先、重要フラグを確認する図解
図1子の名前にCAAがなければ親へ進み、最初に空でないCAA RRsetを適用します。ルートまで見つからなければ、CAAによる発行制限はありません。

一件のCAAは、Flags・Tag・Valueでできている

タグが用途を決め、値が認証局や報告先を示す同じ所有者名に複数のCAAを置き、許可先を追加できる
Flags処理フラグ

Issuer Criticalフラグは、未知の重要タグがあれば発行を止めるよう求める

issue通常証明書

指定した認証局へ通常名の発行を許可する

issuewildワイルドカード

ワイルドカード名の発行許可を別に指定する

iodefインシデント報告

違反や問題を通知する連絡先URIを示す

図20 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」

関連用語