話題の記事

Route 53 が CAA レコードに対応しました!

2017.08.22

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

本日(現地時間 8/21)、Route 53 が CAA レコードに対応しました。

さっそくマネジメントコンソールから設定できるようになっているわけですが、その前に CAA レコードについて少し解説します。

CAA (Certification Authority Authorization) レコード

ひとことで言うと、 「このドメインに関する証明書(SSL, TLS)を発行できる認証局(CA) を指定する」ためのレコードです。

例えばこのレコードに「認証局 A しか発行してはならない」と記述した場合は、認証局 B はたとえリクエストがあったとしても証明書を発行しません。 勝手に他人のドメインの証明書を発行してフィッシング。。。ということがやりにくくなるわけですね。

このレコードは、

  • ドメイン所有者が記述して
  • 認証局(CA) が参照し、リクエスト通りに証明書を発行してよいか判断する

という流れで利用されます。この9月より大手認証局は必ずこのレコードを参照するようになりますので、Route53もその前に対応したというわけです。

ちなみに、CAAレコード自体は設定しなくても問題ありません。 設定されていなければ、9月以降も今まで通りになります。

CAA レコードについては、先日行われた DNS Summer Day 2017 のセッション内でも話題になっていました。

  • DNSの怪しい伝説を斬る「増え続けるRR Typeとどう付き合う?」 其田 学 株式会社インターネットイニシアティブ 資料PDF <http://www.dnsops.jp/event/20170628/DSD2017_RRTYPE.pdf>

資料 PDF の 10ページ目からになります。

また、CAA レコード自体は策定されてから時間も経っていますので、既に各方面で解説記事があがっております。下記は一例ですが、詳細はそちらをご参照下さい。

設定してみる

実際に、Route53 に CAA レコードを記述してみます。

レコードの記述内容自体は、上で紹介した各ドキュメントを参考にしつつ、便利なジェネレータも公開されているので、これらを使って作成すると良いでしょう。

証明書の発行を依頼する認証局ですが、現時点では我らが ACM (AWS Certificate Manager) はまだ CAA サポートを発表していない1ので、今回は Let's Encrypt から取得してみようと思います。

1_generator

ジェネレータに必要な事項を記入すると、「Standard BIND Zone File」の欄にレコードが出力されました。

example1.jp. IN CAA 0 issue "letsencrypt.org"
example1.jp. IN CAA 0 issuewild ";"
example1.jp. IN CAA 0 iodef "mailto:xxxxxx@classmethod.jp"
  • 認証局 (issue) : Let's Encrypt
  • ワイルドカード証明書を発行する認証局 (issuewild) : なし
  • エラーがあった際に通知する先 (iodef) : 担当者のメールアドレス等

この 3行の内容を Route53 に登録します。 ただし Route 53 には、CAA は1ドメイン辺り 1行しか書けないため、Value 欄には下記のように入力して下さい。

0 issue "letsencrypt.org"
0 issuewild ";"
0 iodef "mailto:xxxxxx@classmethod.jp"

Name: 欄は、今回はドメイン自体に指定するので空欄のまま、 Type: 欄は、もちろん CAA - Certification Authority Authorization をプルダウンメニューから選択して下さい。

2_caavalue

設定できたら、実際に検索してみます。 検索するクライアントも CAA レコードに対応していないとダメなので要注意ですね。

手元の環境だと、macOS Sierra に標準に入っていた dighost コマンドは対応していなかったので、新規に Amazon Linux を立ち上げて確認しました。

example1.jp はテスト用のドメインなので、NSレコードに設定されたサーバを一つ指定してクエリします。

$ dig caa example1.jp. @ns-823.awsdns-38.net. +noall +answer

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.56.amzn1 <<>> caa example1.jp. @ns-823.awsdns-38.net. +noall +answer
;; global options: +cmd
example1.jp. 300 IN CAA 0 iodef "mailto:xxxxxx@classmethod.jp"
example1.jp. 300 IN CAA 0 issue "letsencrypt.org"
example1.jp. 300 IN CAA 0 issuewild "\;"

まとめ

  • Route 53 に CAA レコードが指定できるようになった
  • 確認する時は、クライアントのバージョンにも注意

脚注


  1. (2017/09/14追記) ACMもCAAレコードに対応しました -> ACM が CAA レコードに対応しました! | Developers.IO