Let’s EncryptでSSL証明書を取得しようとしたらCAAでコケた話

最近、新しくテストサーバーを立ち上げた際に、Let’sEncryptからSSL証明書の取得を行ったのですが、CAAレコードで許可されていないため取得不可能、のようなエラーが出力されたので、対処法を調べてみました。

まず、CAAレコードとは何かというと、ドメインの所有者が自ドメインのSSL証明書を発行する際、どこの認証局からの証明書の発行を許可するか、を指定するDNSのレコードの種類となっています。

このCAAレコードに指定されたドメインをもつ認証局以外ではドメインのSSL証明書を取得することができなくなるため、SSL証明書の不正取得防止に役立ちます。

今回使用したドメインでは、親ドメインも含めて、Let’s Encryptで取得したことがなかったため、Let’s EncryptのCAAレコードがない状態となっていました。

Let’s EncryptのCAAレコードをBIND9に設定する場合、次のように定義すればOKです。

@(またはサブドメイン名)      IN      CAA     0 issue "globalsign.com" ;許可する認証局1件目
@(またはサブドメイン名)      IN      CAA     0 issue "letsencrypt.org" ;許可する認証局2件目
@(またはサブドメイン名)      IN      CAA     0 issuewild "letsencrypt.org" ;許可する認証局(ワイルドカード証明書の場合)

複数の認証局を許可する場合、上記のように複数行で指定すればOKです。
また、ワイルドカード証明書の発行を許可する場合は、”issue”の代わりに”issuewild”を指定します。

この設定を行ったことで、エラーが解消し、Let’s Encryptの証明書も取得できるようになりました。

先にも上げたとおり、CAAレコードは不正な証明書発行を防ぐ効果があるので、設定したドメインのセキュリティを向上させることができます。

DNSサーバーが対応している必要がありますが、もし利用可能な環境であれば積極的に使っていきたいですね。

参考サイト:

DNS CAAレコードに Let’s Encrypt 認証局を設定する – あぱーブログ

CAA レコードについて – cybertrust

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG