DNS CAA とは何ですか?また、検証および実装する方法は何ですか?

DNS CAA とは何ですか?また、検証および実装する方法は何ですか?

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 レコードの追加には費用はかかりません。

「 DNS CAA とは何ですか?また、検証および実装する方法は何ですか?」についてわかりやすく解説!絶対に観るべきベスト2動画

【公式】DNSレコード設定ガイド | お名前.com byGMO
【DeNA Pococha】IT企業のエンジニア・デザイナー・PdMのプロダクト開発への携わり方