CAA DNS レコードを利用して、CA に TLS 証明書の発行を許可します。
DNS CAA とは何ですか?
CAA は、証明書を発行する必要があるかどうかを CA に指示する DNS レコード タイプの 1 つです。言い換えれば、ドメインSSL/TLS 証明書を誰が発行すべきかを世界に知らせることになります。 CAA の実装は 2017 年末に義務化されたため比較的新しく、人気のあるサイトのうちこれを実装しているのは 5% 未満です。
例を挙げてみましょう – は「gf.dev」というサイトを所有しており、このサイトには次の CAA レコードがあります。
gf.dev. 3586 IN CAA 0 issue "digicert.com; cansignhttpexchanges=yes"
gf.dev. 3586 IN CAA 0 issuewild "comodoca.com"
gf.dev. 3586 IN CAA 0 issue "comodoca.com"
gf.dev. 3586 IN CAA 0 issuewild "digicert.com; cansignhttpexchanges=yes"
gf.dev. 3586 IN CAA 0 issuewild "letsencrypt.org"
gf.dev. 3586 IN CAA 0 issue "letsencrypt.org"
上記の結果を見ると、DigiCert、Comodo、Let’s encrypt からのみ発行された証明書を取得できます。 Thawte または他の CA にgf.dev の証明書を発行するよう依頼しても、発行することはできません。また、注意してみると、一部のエントリにはissueがあり、一部にはissuewild があることに気づくでしょう。それらが何であるかを調べてみましょう。
- issue – そのドメインに対してのみ証明書を発行するように CA に指示します。
- issuewild – CA は、ドメインまたはサブドメインで使用できるようにワイルドカード証明書を発行できます。
CAA レコードは、 iodef (インシデント オブジェクト記述交換形式) もサポートしており、CA が指定された電子メールまたは連絡先詳細に違反レポートを送信できるようになります。
CAA レコードが見つからない場合はどうなりますか?
ドメインに CAA レコードがない場合は、誰でもそのドメインの CSR を生成し、任意の CA によって署名された証明書を取得できます。これはセキュリティ上のリスクです。
もう明らかですか?
上記で使用した略語がいくつかあります。それらが何であるかを確認してみましょう。
- DNS – ドメインネームシステム
- CA – 認証局
- CAA – 認証局の認可
- TLS – トランスポート層セキュリティ
- SSL – セキュアソケットレイヤー
DNS CAA レコードを確認するにはどうすればよいですか?
CAA レコードを検証するには複数の方法があります。ターミナルを離れたくない場合は、dig コマンドを使用して確認できます。
dig caa $YOURWEBSITE.COM
.com の例
root@:~# dig caa .com
; <<>> DiG 9.11.3-1ubuntu1.8-Ubuntu <<>> caa .com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54430
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;.com. IN CAA
;; ANSWER SECTION:
.com. 3600 IN CAA 0 issuewild "comodoca.com"
.com. 3600 IN CAA 0 issuewild "letsencrypt.org"
.com. 3600 IN CAA 0 issue "comodoca.com"
.com. 3600 IN CAA 0 issue "digicert.com; cansignhttpexchanges=yes"
.com. 3600 IN CAA 0 issue "letsencrypt.org"
.com. 3600 IN CAA 0 issuewild "digicert.com; cansignhttpexchanges=yes"
;; Query time: 7 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Tue Oct 08 07:12:21 UTC 2019
;; MSG SIZE rcvd: 298
root@:~#
これをリモートでテストしたい場合は、 DNS CAA Testerオンライン ツールを使用できます。
CAAレコードを追加するにはどうすればよいですか?
技術的には、これは、A、NS、CNAME などの他の DNS レコードを追加するのと同じ方法です。
Cloudflareを使用している場合は、「DNS」タブに移動 >> レコードを追加し、タイプとして CAA を選択します。
GoDaddy の場合は、DNS 管理に移動してレコードを追加します
追加方法がわからない場合は、DNS/ホスティングプロバイダーに問い合わせてください。
結論
まだ行っていない場合は、CAA レコードを利用してドメイン セキュリティの層を追加する必要があります。 CAA レコードの追加には費用はかかりません。