CloudFrontにSSL証明書をインポートしようとCustom SSL CertificateからACMに登録した証明書を指定したらエラーになった話。
エラーメッセージはこんな感じ
com.amazonaws.services.cloudfront.model.InvalidViewerCertificateException: The specified SSL certificate doesn't exist, isn't in us-east-1 region, isn't valid, or doesn't include a valid certificate chain. (Service: AmazonCloudFront; Status Code: 400; Error Code: InvalidViewerCertificate; Request ID: hogehoge)
英語は苦手なので、適当ですが、isn’t in us-east-1 regionとか書いてあったからus-east-1以外に置いちゃってるのかなーと思ったけれどもそんなことはなく、
isn’t validとか書いてあるのでコピペミスったかと思い再度インポートしてみるも同じエラー。
なんでやねん、Let’s Encryptの無料の使ってるからか?と調べていたらこのページへ。
CloudFront ディストリビューションに独自 SSL 証明書を使用できないのはなぜですか?
このエラーメッセージは、インポートした証明書が次のどれか 1 つまたは複数に当てはまることを示しています。 米国東部 (バージニア北部) 以外の AWS リージョンにインポートした 2048 ビットより大きい PEM エンコードなし パスワード保護されている
2048 ビットより大きい
ぉ・・・?
証明書は、2048 ビット以下の RSA 証明書である必要があります。ACM は 1024 ビットから 4096 ビットの RSA 証明書をサポートしますが、ACM と統合された CloudFront などのサービスは最大 2048 ビット RSA 証明書をサポートします。
ぬ、これは・・・と思い、ACMから鍵を見直す。
パブリックキー情報 RSA 4096-bit
なるほど。RSA 4096-bitはサポートしていないと。
というわけで作り直して入れたら平気だった。