CAA リソースレコードを設定する

不正な証明書や意図しない証明書が発行されることを防ぐため、ドメイン名の管理者はそのドメイン名の証明書を発行できる認証局を指定することができます。

この指定は DNS の CAA (Certification Authority Authorization) リソースレコード (RFC 8659) によって行います。

認証局は証明書を発行する前に CAA リソースレコードを検証し、その認証局に対して証明書の発行が許可されていることを確認します。 このため、 Gehirn MCA をご利用のお客さまは CAA リソースレコードを設定し、 Gehirn MCA による証明書の発行を許可する必要があります。

なお、 CAA リソースレコードを全く設定しない場合は、 Gehirn MCA を含むすべての認証局が証明書を発行することができます。

CAA リソースレコードの内容 

CAA リソースレコードでは、証明書の発行を許可する認証局をその認証局に固有のドメイン名によって指定します。 Gehirn MCA に証明書の発行を許可するには、認証局のドメイン名として usertrust.com を指定します。

この指定は、証明書に含まれるすべてのドメイン名について行う必要があります。

example.net*.example.net のように、同じドメイン名のワイルドカードと非ワイルドカードの両方を含む証明書の場合は、それぞれについて設定が必要になる場合があります。

issue タグを使用する 

CAA リソースレコードの内容は、ドメイン名の種類と現在の設定内容により異なります。

以下のいずれかの条件に当てはまる場合は、 issue タグを使用して CAA リソースレコードを設定します。

  • 非ワイルドカードドメイン名を使用する
  • 以下のすべての条件に当てはまる
    • ワイルドカードドメイン名を使用する
    • issuewild タグを使用する CAA リソースレコードがほかに設定されていない

例として、 Gehirn MCA に example.net の証明書を発行することを許可する場合は以下の CAA リソースレコードを設定します。

example.net. IN CAA 0 issue "usertrust.com"

issuewild タグを使用する 

以下のすべての条件に当てはまる場合は、 issuewild タグを使用して CAA リソースレコードを設定します。

  • ワイルドカードドメイン名を使用する
  • issuewild タグを使用する CAA リソースレコードがすでに設定されている

例として、 Gehirn MCA に *.example.net の証明書を発行することを許可する場合は以下の CAA リソースレコードを設定します。

example.net. IN CAA 0 issuewild "usertrust.com"

issuewild タグの使用

認証局がワイルドカードドメイン名の証明書を発行するとき、まず issuewild タグを検索し、見つからなければ issue タグを代わりに評価します。 issuewild タグが見つかれば issue タグは評価されません。

このため、新たにワイルドカードを含む証明書の発行を許可するとき、すでに issuewild タグが存在する場合は issuewild タグによる指定のみが有効になります。一方、 issuewild タグが存在しない場合に issuewild タグを使用すると、 issue タグにより指定されているほかの認証局がワイルドカードを含む証明書を新たに発行できなくなります

このマニュアルでは、すでに issuewild タグが使用されている場合のみ issuewild タグを使用することで、既存の設定が上書きされることを回避しています。

CAA リソースレコードの評価例 

より CAA リソースレコードについて詳しく説明するため、いくつかの DNS ゾーンの抜粋を例示し、それぞれのゾーンについて Gehirn MCA がどのような証明書を発行できるか検討します。

この例で示す DNS ゾーンはすべて example.net. です。

例1 

$ORIGIN example.net.

この例では CAA リソースレコードが一切設定されていません。 CAA リソースレコードが存在しない場合は、すべての認証局がすべての証明書を発行できます。

例2 

$ORIGIN example.net.
@ IN CAA 0 issue "usertrust.net"

この例では issue タグが Gehirn MCA を指定しています。また、 issuewild タグが存在しない場合はワイルドカードについても issue タグが評価されます。

このため、 Gehirn MCA はすべての証明書を発行できます。

例3 

$ORIGIN example.net.
@ IN CAA 0 issue "usertrust.net"
@ IN CAA 0 issuewild "usertrust.net"

この例では issue タグと issuewild タグがどちらも Gehirn MCA を指定しています。このため、 Gehirn MCA はすべての証明書を発行できます。

例4 

$ORIGIN example.net.
@ IN CAA 0 issue "usertrust.com"
@ IN CAA 0 issuewild "example.com"

この例では issue タグが Gehirn MCA を指定していますが、 issuewild タグは Gehirn MCA を指定していません。このため、 Gehirn MCA はワイルドカードを含まない証明書は発行できますが、ワイルドカードを含む証明書は発行できません。

例5 

$ORIGIN example.net.
@ IN CAA 0 issue "example.com"

この例では issue タグが Gehirn MCA を指定していません。また、 issuewild タグが存在しない場合はワイルドカードについても issue タグが評価されます。

このため、 Gehirn MCA は一切の証明書を発行できません。

例6 

$ORIGIN example.net.
@ IN CAA 0 issue "example.com"
@ IN CAA 0 issuewild "usertrust.net"

この例では issue タグが Gehirn MCA を指定していない一方で、 issuewild タグは Gehirn MCA を指定しています。

このため、 Gehirn MCA はワイルドカードだけを含む証明書のみ発行できます。

例7 

$ORIGIN example.net.
@ IN CAA 0 issue "usertrust.net"
mail IN CAA 0 issue "example.com"

この例では example.net.issue タグは Gehirn MCA を指定している一方で、 mail.example.net.issue タグは Gehirn MCA を指定していません。

CAA リソースレコードの指定は、もっとも近い祖先ドメインのものが継承されます。このため、 Gehirn MCA は mail.example.net およびその子孫の証明書を発行することはできませんが、その他の example.net ドメインの証明書は発行することができます。

まとめ 

以下の表は、Gehirn MCA が具体的なドメイン名に対して証明書を発行できるかどうかについて、これまでの例をまとめたものです。

発行可否
example.net www.example.net *.example.net *.mail.example.net
例1
例2
例3
例4 不可 不可
例5 不可 不可 不可 不可
例6 不可 不可
例7 不可