AWS Route 53でドメインを購入した。その後、AWS Certificate Manager(ACM)で証明書を発行しようとしたら、ACM側で1日以上検証保留中(pending)となってしまった。
本来なら数分から30分程度で成功するという記事も見たので、これは何かがおかしいと思い原因を調べた。
原因
ドメインのネームサーバーと、ホストゾーンのネームサーバーが異なっていた。
詳細
私はRoute 53が自動で作ったホストゾーンを削除し、新しくホストゾーンを手動で作り直してしまった。
ホストゾーンを作り直した際、レコード(タイプ:NS)に示されたネームサーバーと、ドメインに登録されたネームサーバーが異なっていた。これが原因だった。
私はTerraformで証明書を管理しようとして、ホストゾーンを何度も作り直していたので、このような事態に陥った。
解決方法
Route 53のコンソールに移動する。
左のメニューから「ホストゾーン」をクリック。該当のホストゾーンを選択し、そのレコード(NS)を見て、ネームサーバーを全てコピーする。
左のメニューから「登録済みドメイン」をクリック。「ネームサーバーの追加/編集」をクリック。そこで既存のネームサーバーをすべて削除し、先ほどコピーしたものに差し替える。
ほどなくして証明書のステータスが「成功」に代わるはず。
参考
When you create a hosted zone, Route 53 automatically creates a name server (NS) record and a start of authority (SOA) record for the zone. The NS record identifies the four name servers that Route 53 associated with your hosted zone.
自動で作成されるホストゾーンには正しいネームサーバーが記録されている。そもそもそのホストゾーンを削除しなければこのような事態にはならないことがわかる。
In my case, it turned out to be the mismatch in nameserver(NS) lists between the new hosted zone and the registered domain. Apparently, a new hosted zone is created with different NS list each time, so I've copied them into the one of my registered domain. Thanks though, this comment guided me to dig up there :)
本記事での解決方法はここから頂いた。