この記事を読んでわかること
ACMでSSL証明書作成時、ワイルドカードを使い、複数のサブドメインをサポートしたい時の注意点を知ることができます。
冒頭まとめ
ACMで、ワイルドカードを使ってドメイン名を登録する際は、以下の点に注意が必要です。
サブドメインのレベルは、一つしかサポートされないこと
2つ以上のサブドメインレベルを登録したい場合は、登録したいドメインをFQDNで指定する必要があります。
背景
以下の構成で、HTTPS通信を実現したい場面がありました。
外部からのアクセス対象となるの名前(ALBのDNSレコード名)はelb.test.homma.jp
であり、Route53で登録しています。
elb.test.homma.jp
に対し、HTTPSでの通信を実現するため、ACMでSSL証明書を作成しました。
SSL証明書を作成する際に、ワイルドカードを使用してつまづいた部分があったので、備忘も兼ねて記事にします。
前提条件
-
ドメイン名(Zone Apex)
homma.jp
-
ALBのDNSレコード(Aレコード)
elb.test.homma.jp
ハマったところ
- まず、ACMでSSL証明書を作成しました。
サブドメイン扱いとなるelb.test.homma.jp
に、HTTPSアクセスをしたかったため、**ワイルドカード(*)**を使った証明書として、*.homma.jp
を登録しました。
- そして、ALBへの証明書のアタッチなど、諸々の設定を済ませたあと、ブラウザから
elb.test.homma.jp
へHTTPSアクセスしてみると、保護されていない通信として、エラーになります。証明書が無効の状態となっていました。
原因
公式のドキュメントに、以下の記述がありました。
ワイルドカード証明書をリクエストする場合、アスタリスク (
*
) はドメイン名の左側に付ける必要があり、1 つのサブドメインレベルのみを保護できます。たとえば、*.example.com
はlogin.example.com
およびtest.example.com
を保護できますが、test.login.example.com
を保護することはできません。〜〜省略〜〜
ACMにおいて、ワイルドカード(*)は、一つのホストまでしかサポートしない仕様に対し、elb
とtest
の2つ入ったelb.test.homma.jp
をサブドメインとして登録していたことが、エラーとなった原因です。
正しくは
2つのパターンがあります。
-
今回のように、
elb.test.homma.jp
などの2つ以上のホストが入っている場合は、ワイルドカードを指定するのではなく、FQDNを指定する -
ドメイン名のホストを一つとしたアクセス要件にする。(例えば、elb.homma.jpにする)
→こちらの場合はホストの数に制限はかかりますが、ワイルドカードを使うことで複数のドメイン名をサポートできます。
今回は、2の方法ででHTTPSアクセスを実現してみます
再び挑戦
- アクセス対象のドメイン名を、
elb.test.homma.jp
からelb.homma.jp
に変更
- ふたたび、ブラウザから
elb.homma.jp
へアクセスし、無事HTTPSでのアクセスができました。
まとめ
ACMでワイルドカードを利用する際は、サポートされるサブドメインの範囲に注意が必要です
参考にした記事
以下の記事を参考にさせていただきました。