【小ネタ】ACMで発行したワイルドカードSSLサーバ証明書で、 ゾーンエイペックスを設定した時にハマった話

2020.09.10

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、コンサル部@大阪オフィスのTodaです。

インターネット上にWebサイトを公開する際、通信内容の盗聴・改ざんを防止するためにSSLの導入が推奨されます。
AWS Certificate Managerを利用する事でSSL証明書を発行することができます。
今回ワイルドカードSSLサーバ証明書を発行した時にはまった話を記事にしました。

ワイルドカードSSLサーバ証明書とは?

ワイルドカードSSLサーバ証明書 (以降:ワイルドカード証明書)は同一ドメイン配下にある複数のコモンネームを1つのSSL証明書で保護することができます。コモンネーム毎にSSL証明書を準備する必要がないため経費や手間の削減ができます。

通常のSSL証明書とワイルドカードSSL証明書の違い

今回ハマった箇所

ワイルドカード証明書を発行してELBに設置後、 ゾーンエイペックスとサブドメインにアクセスをしたところゾーンエイペックスのみSSL証明書エラーが発生してしまった。

  • [証明書OK] sub1.example.com, sub2.example.com, test.example.com
  • [証明書NG] example.com

※ゾーンエイペックス(Zone APEX)とは?
ゾーンエイペックスはドメイン名そのものを指します。上記の場合は「 example.com 」になります。

原因を調べてみる

AWSサイトに掲載されている「ACM 証明書の特徴」を確認したところ下記の文面を見つけました。

(参考資料)https://docs.aws.amazon.com/ja_jp/acm/latest/userguide/acm-certificate.html

注記
ワイルドカード証明書をリクエストする場合、アスタリスク (*) はドメイン名の左側に付ける必要があり、1 つのサブドメインレベルのみを保護できます。
例えば、 *.example.com 保護できる login.example.com および test.example.comが保護できない test.login.example.com。
また、 *.example.com 保護する のみ のサブドメイン example.comベアドメインまたはアペックスドメインは保護されません(example.com)。
ただし、複数のドメイン名を特定してリクエストすることで、ネイキッドあるいはホスト名のないドメインとそのサブドメインを保護する証明書をリクエストできます。
たとえば、example.com と *.example.comを保護する証明書をリクエストできます。

つまり、ワイルドカード証明書を発行する場合、サブドメインの保護は現在の設定で良いが、ゾーンエイペックス(example.com)の保護をする場合は追加で指定する必要があることがわかりました。
では、内容をふまえて証明書の発行をやってみたいと思います。

ワイルドカードSSLサーバ証明書の発行操作

証明書のリクエスト

AWSコンソール内のCertificate Managerに移動をして「証明書のリクエスト」をクリックします。

SSL発行手続き1

証明書のタイプ指定

証明書のタイプを選択します。
今回はWebサイトで利用する事を想定しているため「パブリック証明書」を選択します。

SSL発行手続き2

ドメイン名の追加

今回、重要な項目であるドメインの設定をおこないます。
こちらにはワイルドカードのドメイン指定とゾーンエイペックス2点の設定を行います。
項目は1点しかないため「別の名前を追加」ボタンをクリックして項目を追加してください。

※内容はサンプルになります実際の利用はお手持ちのドメインを設定ください。

SSL発行手続き3

検証方法の選択

証明書に利用するドメインが利用者の管理下かどうか判断するために検証を行います。
検証は「DNSの検証」と「Eメールの検証」の2種類があります。
対象ドメインのDNSレコードを追加できる場合は「DNSの検証」が利用可能です。

SSL発行手続き3

タグの設定と確認

管理運用に利用できるタグを設定する事ができます。
次を押すことで設定内容の確認を行いリクエストを行います。

検証

今回「DNSの検証」を選択したためDNSに登録するレコード情報が表示されます。
Route53で対象ドメインを管理している場合は「Route53でのレコードの作成」をクリックする事で簡易にレコードを追加できます。
別のDNSサービスを利用している場合は画面内の CNAME レコードを追加するように対応します。

SSL発行手続き4

登録完了と検証待ち

上記登録が完了すると一覧に戻り設定した証明書が追加されます。
証明書は状態が「発行済み」になると利用可能になります。

ブラウザで確認

Google ChromeブラウザでSSLページにアクセスしたところ正常に保護されていることが確認できました。
また、証明書の内容を確認したところワイルドカード指定のドメインとペアックスドメインが入っていることを確認しました。

ブラウザでSSL確認

 

さいごに

ワイルドカードSSLサーバ証明書を発行したときにハマった点でした。
同じような事象で悩まれた方がいた場合、すぐに解決できるように今回の記事を書かせて頂きました。

以上でございます。