はじめに
Amazon Certificate Manager(ACM)でSSL証明書を発行しようとしたところ、ステータスが「保留中の検証」からずっと変化がなく困りました。
調べたところ、CNAMEレコードの登録が必要であることが判明し、実施したところ無事に解決しました。
その期にACMが証明書を発行するまでの流れについて調べてみましたので、そこで理解したことについても書きたいと思います。
前提:証明書を発行するドメインはAWSで取得しました。DNSサーバーはRoute53を使用します。
「保留中の検証」の解決
まず調べたところDNSによる検証の場合、証明書IDをクリックした先の画面で表示されるCNAME名とCNAME値を、Route53に登録する必要があることがわかりました。Route53で手動で値を入力し登録したところ、無事にステータスが「発行済み」に変わりました。
その後に気づいたのですが、ACMのコンソールにある「Route53でレコードを作成」をクリックすれば、CNAME名とCNAME値を自動で入力してくれます。気付きませんでした…。
CNAMEレコードを作成した意味
AWSのドキュメントに次のような記載があります。1
DNS プロバイダーは、ドメインを定義するレコードを含むデータベースを維持します。DNS 検証を選択すると、このデータベースに追加する必要がある 1 つ以上の CNAME レコードが ACM から提供されます。これらのレコードには、ドメインを制御する証拠となる一意のキーと値のペアが含まれています。
各レコードは、ユーザーのドメインおよびアカウントに固有のものとして作成され、名前と値が含まれます。この値は、証明書を自動更新するために ACM が使用する AWS ドメインを指すエイリアスです。
その他に調べたことも含め、次のように理解しました。
ACMは証明書を発行する際に、ドメインの定義状況をDNSプロバイダーに確認しにいきます。もしACMから提供されたCNAMEレコードが登録されていた場合、証明書の申請者がレコードを登録したのだと判断できます。申請者のドメインに対する権限が証明されましたので、ACMは証明書を発行します。
もっと厳密な理解ができるように学んでいきたいと思います…!!