TerraformでCloudFrontを作成した際に下記エラーが発生しました。
-
creating CloudFront Distribution: InvalidViewerCertificate: The certificate that is attached to your distribution doesn't cover the alternate domain name (CNAME) that you're trying to add. For more details, see: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html#alternate-domain-names-requirements
CloudFront ディストリビューションを作成しています: InvalidViewerCertificate: ディストリビューションに添付されている証明書は、追加しようとしている代替ドメイン名 (CNAME) をカバーしていません。詳細については、https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html#alternate-domain-names-requirements を参照してください。
リソース「aws_cloudfront_distribution」の「acm_certificate_arn」に利用可能なSSL/LLS証明書(ACMで作成)が必要となるようです。
SSL/LLS証明書が必要ということはそれに対応するドメインも必要ということなので、下記対応を行ったところ問題は解決しました。
手順(※ hoge.co.jpはRoute53で作成済みとする)
-
1. Route53で[www.hoge.co.jp]を作成し、[hoge.co.jp]のホストゾーンに[www.hoge.co.jp]のNSレコードを登録する
2. ACMで証明書を発行。証明書のCNAMEを[www.hoge.co.jp]のホストゾーンのレコードに登録
3. Terraformでリソース「aws_cloudfront_distribution」で定義した「acm_certificate_arn」に先ほどACMで作成した証明書のarnを設定。また、「aliases」に「www.hoge.co.jp」を設定
4. 上記の状態でapplyするとcloudfrontの作成に成功する
5. 仕上げに、Route53で[www.hoge.co.jp]のホストゾーンのAレコードにレコード名を「www.hoge.co.jp」、値をcloudfrontの「ディストリビューションドメイン名」として登録する。
登録することで、https://www.hoge.co.jpにアクセスするとcloudfrontへ接続できるようになる。