はじめに
AWS外部(今回はXserver)で管理しているドメインのサブドメインに対してACMの証明書をリクエスト。この際表題のエラーが発生。
原因
すでに他サービスで当該ドメインの証明書が発行されている。
(今回は別チームが開発中のShopifyアプリで当該サブドメインのTLS設定が既にされてあった。)
上記のサービスで証明書が発行された際、ShopifyドメインのCAAレコードも一緒に設定されてしまっており、下記AWSのCAAを許可していなかった。
- amazon.com
- amazontrust.com
- awstrust.com
- amazonaws.com
確認方法
例えば、yahoo.co.jp
のCAAレコードを確認すると、下記のように4つのCAAレコードが設定してある。
この中にAWSのCAAは含まれていいないため、ACMを使って証明書(例えばtest.yahoo.co.jp
)を勝手に発行することはできない。
$ dig caa yahoo.co.jp
; <<>> DiG 9.10.6 <<>> caa yahoo.co.jp
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60261
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;yahoo.co.jp. IN CAA
;; ANSWER SECTION:
yahoo.co.jp. 900 IN CAA 0 issue "cybertrust.ne.jp"
yahoo.co.jp. 900 IN CAA 0 iodef "mailto:nic-admin@mail.yahoo.co.jp"
yahoo.co.jp. 900 IN CAA 0 issue "digicert.com;cansignhttpexchanges=yes"
yahoo.co.jp. 900 IN CAA 0 issue "globalsign.com"
;; Query time: 21 msec
;; SERVER: 240b:251:a2a0:1e00:8222:a7ff:fe23:d5a4#53(240b:251:a2a0:1e00:8222:a7ff:fe23:d5a4)
;; WHEN: Tue Jun 07 03:40:56 JST 2022
;; MSG SIZE rcvd: 216
対応
①ドメイン管理画面からAWSのCAAレコードを追加する
外部ドメインサービスの設定でAWSのCAAレコードを設定する。(XserverはCAAレコード未対応)
②当該ドメインを諦め、CAAレコードが設定されていない別ドメインを使う
CAAレコードが設定されていないドメインであれば、ACMで新たに証明書を発行することができる。
dig caa <your-domain>
コマンドで利用可能な別ドメインを探して使う。
参考