「非SSLのRoute53→S3」を「SSLのRt53→CloudFront(ACM)→S3」に変更するときエラーが出た
既に、ACM東京リージョンでexample.comと*.example.comを1つにまとめた(アスタリスク)SSL証明書がある状態でした。Route53のパブリックホストゾーンで、Aレコードのエイリアスでexample.comも、001.example.comも、internet-facingのALB(ACM)からEC2という感じで使っていました。その状況でACM東京リージョンの既存のアスタリスク証明書を002.example.comとしてCloudFrontに使おうとしましたが駄目でした。
前提
お名前ドットコムなど、独自ドメインのレジストラのネームサーバーがRoute53に既に向いていてRoute53にCNAMEできる権限があること。
ACMアスタリスク証明書をCloudFrontで使えなかった原因
ACMの既存SSL証明書がus-east-1のバージニア北部のリージョンに無いからでした。CloudFrontでACM東京リージョンのSSL証明書は使えません(とてもわかりにくい、勘弁して・・・)。バージニア北部に証明書が無いと「Create Distribution」の「Distribution Settings」の「SSL Certificate」で「Custom SSL Certificate (example.com):」がグレーアウトして証明書の選択すら出来ないです。右下の青い「Create Distribution」をクリックすると、以下の様なエラーが、小さい赤文字でとても読み見にくく出現します。
com.amazonaws.services.cloudfront.model.InvalidViewerCertificateException: To add an alternate domain name (CNAME) to a CloudFront distribution, you must attach a trusted certificate that validates your authorization to use the domain name. For more details, see: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html#alternate-domain-names-requirements (Service: AmazonCloudFront; Status Code: 400; Error Code: InvalidViewerCertificate; Request ID: ○△×○△×○△×-○△×-○△×-○△×-○△×○△×; Proxy: null)
CloudFrontへのalternate domain nameのCNAMEをよこせ、そしてCertificateもアタッチせい!と言われてるっぽい。
DNS検証で、ACMのバージニア北部で002.example.comの証明書発行が済んでから「Create Distribution」画面に改めて訪問、「Custom SSL Certificate (example.com):」をクリックするとACMの証明書の選択肢がドロップダウン方式で現れました、選択します。
もしも、東京リージョンのアスタリスク証明書の中に002.example.comが含まれてしまい、アスタリスク証明書のホストゾーンの分離から作り直し作業が発生したら、かなりめんどくさいな・・・、と思いつつ、祈るように重複覚悟でバージニア北部のACMで 002.example.comのACM作成やったら出来ちゃった。っていう話です。
これで右下の青い「Create Distribution」をクリックしてもエラーを出さずにCDN作成出来ました。