Amazon CloudFront ディストリビューションのカスタム SSL 証明書をトラブルシューティングしたいです。
解決策
注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
ACM にリクエストした、または ACM にインポートした証明書には、サポートされているリージョンを使用してください
AWS Certificate Manager (ACM) 証明書を CloudFront ディストリビューションに割り当てるには、サポートされている AWS リージョンで証明書をリクエストまたはインポートする必要があります。サポートされているリージョンで証明書をリクエストまたはインポートしないと、エラーメッセージが表示されます。
IAM にインポートした証明書の正しい CloudFront パスを指定する
ACM を使用して証明書をインポートするのがベストプラクティスです。SSL 証明書を AWS Identity and Access Management (IAM) にインポートする場合は、CloudFront が証明書を使用できるように正しいパスを指定してください。
指定した CloudFront パスを使用して証明書をインポートするには、次の AWS CLI コマンド upload-server-certificate を実行します。
aws iam upload-server-certificate --server-certificate-name CertificateName--certificate-body file://public_key_certificate_file --private-key file://privatekey.pem --certificate-chain file://certificate_chain_file --path /cloudfront/DistributionName/
注: CertificateName を証明書の名前に、public_key_certificate_file をパブリックキーファイルパスに、privatekey.pem をプライベートキーファイルパスに、certificate_chain_file をチェーンファイルへのパスに、DistributionName を CloudFront ディストリビューションに置き換えてください。
証明書をインポートしたときに CloudFront パスを指定しなかった場合は、次の AWS CLI コマンド update-server-certificate を実行して、そのパスを使用して証明書を更新します。
aws iam update-server-certificate --server-certificate-name CertificateName --new-path /cloudfront/DistributionName/
注: CertificateName を証明書名に、DistributionName を CloudFront ディストリビューション名に置き換えてください。
証明書を CloudFront ディストリビューションに追加した後、ディストリビューションのステータスは [デプロイ済み] から [処理中] に変わります。変更がすべての CloudFront エッジロケーションにデプロイされると、ディストリビューションのステータスは [デプロイ済み] に戻ります。
必要なアクセス許可があることを確認します。
ACM または IAM から証明書を割り当てる場合、証明書の割り当てに使用する IAM ユーザーまたはロールには次のアクセス許可が必要です。
{ "Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "acm:ListCertificates",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"cloudfront:ListDistributions",
"cloudfront:ListStreamingDistributions"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"cloudfront:List*",
"cloudfront:Get*",
"cloudfront:Update*"
],
"Resource": "arn:aws:cloudfront::account-id:distribution/distribution-id"
},
{
"Effect": "Allow",
"Action": "iam:ListServerCertificates",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"iam:GetServerCertificate",
"iam:UpdateServerCertificate"
],
"Resource": "arn:aws:iam::account-id:server-certificate/certificate-name-with-path"
}
]
}
関連情報
CloudFront ディストリビューションで発生するドメイン名エラー "InvalidViewerCertificate" を ACM を使用してトラブルシューティングする方法を教えてください。
CloudFront で SSL/TLS 証明書を使用するための要件
証明書キーのサイズ