先日、東京リージョンでも利用可能になったSSL証明書の発行サービス、AWS Certificate Managerなんですが、これを使ってワイルドカードの証明書を発行して実際に使用してみたらエラーが起きたのでその原因と解決策について書きます。
ワイルドカードのSSL証明書を発行したことがある人にとっては常識なのかもしれませんが、ご了承ください。
なお、本記事はドメインをexample.com
として書いていますが、実際には自前で取得したドメインで操作を行っているのでその前提で読んでいただければと思います。
*.example.com
はexample.com
にマッチしない
字面だけみたらそりゃそうだろ感あるんですけど自分的に意外だったので。
Domain Nameに*.example.com
を入れて、CloudFrontでその証明書を指定して、ブラウザで”https://examples.com"にアクセスしたところこの証明書は不正だけど信頼してアクセスするか?のようなオレオレ証明書を使ったときと同じような警告画面が表示されてしまいました。
*.example.com
は”https://www.example.com”や”https://sushi.example.com"にはマッチするんですが、”https://example.com"にはマッチしないわけですね。
なので、Domain Nameには”example.com"を入れる必要があります。
ただし、これだと今度は”https://www.example.com"の時にエラーになります。 これの解決策は下記の内容になります。
*.example.com
を入力する場所
のどれでアクセスされたとしても”https://example.com"にリダイレクトさせるというようなことはよくやると思うので、何とかする必要がありますね。
AWS Certificate Managerの"Add another name to this certificate"ボタンを押すともう一つ入力欄が出るので、そこに*.example.com
を書いてやれば”https://example.com”,”https://www.example.com"の両方が許可されることになります。なお、2つ書くと証明書のApproveのためのメールが2通届き、両方を承認しないと証明書のステータスがIssuedにならないのでご注意ください。
こんな感じで入力して、
こうなればOK
また、あくまで”https://example.com”と”https://www.example.com"だけ許可したくて、ワイルドカードでは許可したくないという事情がある場合はAdd another name...を押したあとにwww.example.com
と書くことも可能です。