AWS Certificate Manager(ACM)と Amazon Route 53 を使用する際に発生した問題から、DNSに関して学べたので記事にします。
やりたいこと
ACMのDNS検証で証明書の発行がしたいです。
しかし「保留中の検証」から「発行済み」にならず、苦労しました。
その原因はNSレコードで、DNSの権限委任について知識が不足していたことにありました。
ドメインの現状
- 親ドメイン:pri-tomioka.com
お名前.comで購入したドメインです。 - 共通ホストゾーン:training.pri-tomioka.com
Route53で、このホストゾーンが作成されている状態です。
ここまで作成済み。以下を新規作成。 - サブドメイン:test01.training.pri-tomioka.com、test02.training.pri-tomioka.com、test03.train…
といったサブドメインを順次追加していく予定です。
証明書発行してみたときの失敗談
Route53でホストゾーン test01.training.pri-tomioka.com を作成して、
バブリック証明書をDNS検証で作成します。
Route53のサブドメインにCNAMEを設定します。
これで発行完了や!と思って待ってみましたが、検証が完了しませんでした。
ステータスが「保留中の検証」のまま何時間待っても成功しません。
原因はNSレコードにあり
設定としてはRoute53に問題があります。
サブドメインのトラフィックのルーティングが設定されておらず、ACMがサブドメインにアクセスするための名前解決ができていなかったのです。
nslookupで確認してみます。
nslookup -type=ns test01.training.pri-tomioka.com
解決策は以下の2点です。
- 共通ホストゾーンtraining.pri-tomioka.comにNSレコード作成し、サブドメインtest01.training.pri-tomioka.comのネームサーバを指定
- 親ドメインpri-tomioka.comにNSレコード作成し、サブドメイン(共通ホストゾーン)training.pri-tomioka.comのネームサーバを指定
1の設定
2の設定(画面はお名前.com)
nslookupを実行すると、NSレコードがDNSに登録されていることを確認できました。
そして少し待っていると、ついに証明書が「発行済み」になりました!!
さいごに
この記事を書くに至ったきっかけを記載します。
昨年、私が受けていた「クラウド研修」で、今年はスクラムマスターとして新人たちを指導する立場になっています。
今年の研修で新人たちから、「証明書がいつまで経っても発行されない」と相談をいただきました。
調べてみると、親ドメインに共通ホストゾーンのネームサーバが指定されていないことが原因。
この親ドメインは新人たちは見ることができない環境だったため、スクラムマスター側で解決しました。
運営側の不備で申し訳ない反面、去年は触れなかった親ドメインの設定にも今回は関わることができ、少しうれしさも感じてます。
指導する立場ではありますが、私自身も新たな知識を得ることができ勉強になりました。
参考:去年受講者の記事を紹介