既存のCloudFrontにサブドメインを追加しようとして失敗した話

記事タイトルとURLをコピーする

はじめに

こんにちは。技術3課の三木です。
年末年始の連休を使ってAWS認定のAlexaスキルビルダーを取得すべく、Alexaの勉強を始めました。
公式動画シリーズのAlexa道場というのを見ていってます。
初心者でも結構色々と出来そうで、可能性を感じる今日この頃です。

CloudFrontにサブドメインを追加したい

概要

やりたいこと

既存のCloudFrontに、www.mk-hrk.tkという名前でアクセスしています。画像左側、青い線です。
ここに、test1.mk-hrk.tkという名前でもアクセスできるようにしたいと考えています。画像右側、オレンジの線です。

f:id:swx-miki:20201222115042p:plain
やりたいこと

やったこと

test1.mk-hrk.tkという名前で、CloudFrontが解決されるようにDNSを設定しました。

f:id:swx-miki:20201222115119p:plain
test1.mk-hrk.tkを追加しました

CloudFrontのSSL証明書は *.mk-hrk.tk となっているので、CloudFront側の設定は変更しませんでした。

f:id:swx-miki:20201222121026p:plain
CloudFrontに設定されているSSL証明書

おきたこと

f:id:swx-miki:20201222115149p:plain
このサイトへの接続はセキュリティで保護されていません…だと…

何が足りなかったのか

結論

CloudFrontのCNAMEsに設定を追加する必要がありました。

f:id:swx-miki:20201222115521p:plain
CloudFrontのディストリビューション画面にある、この項目

やったこと

f:id:swx-miki:20201222115416p:plain
CloudFrontのディストリビューションから、Editを選択

f:id:swx-miki:20201222115446p:plain
CNAMEsに、名前を追加!

おきたこと

f:id:swx-miki:20201222115642p:plain
無事に表示されました!

なぜエラーが起きたのか

検証

色々と見た結果、どうやら証明書が悪そうでした。

$ openssl s_client -connect www.mk-hrk.tk:443 -servername www.mk-hrk.tk -quiet
depth=2 C = US, O = Amazon, CN = Amazon Root CA 1
verify return:1
depth=1 C = US, O = Amazon, OU = Server CA 1B, CN = Amazon
verify return:1
depth=0 CN = *.mk-hrk.tk
verify return:1
$ openssl s_client -connect test1.mk-hrk.tk:443 -servername test1.mk-hrk.tk -quiet
139739654132864:error:1408F10B:SSL routines:ssl3_get_record:wrong version number:../ssl/record/ssl3_record.c:332:



複数のサブドメインを利用したい場合、ワイルドカード証明書を利用した上で、CNAMEsに記載する必要があります。

おわりに - 関連資料

そのほか、公式な情報は以下の開発者ガイドをご確認ください!
参考: Amazon CloudFront - 開発者ガイド

何かのお役に立てれば幸いです。

三木 宏昭 (執筆記事の一覧)

クラウドインテグレーション部 技術1課

紅茶と親子丼とAWSが好き

2021年の目標:毎日リングフィットアドベンチャーのコントローラーを持つ

2021 APN ALL AWS Certifications Engineers