私は Amazon CloudFront ディストリビューションで使用する AWS Certificate Manager (ACM) または AWS Identity and Access Management (IAM) の SSL 証明書を持っています。発生している問題のトラブルシューティングをしたい。
簡単な説明
CloudFront ディストリビューションにカスタム SSL 証明書を使用する際によく発生する問題は次のとおりです。
- ディストリビューションを設定するときに、カスタム SSL 証明書を選ぶというオプションがない。
- ロードバランサーで同じ証明書を使用できたとしても、SSL 証明書を選択することができない。
解決方法
CloudFront ディストリビューションでカスタム SSL 証明書を使用する際の問題をトラブルシューティングするには、以下を確認してください。
ACM からリクエストされた、または ACM にインポートされた証明書を使用している場合は、証明書が要件を満たしていることを確認します。
IAM にインポートされた証明書を使用している場合は、CloudFront のパスを検証します。
SSL 証明書を IAM にインポートするときに、CloudFront が証明書を使用できるように正しいパスを入力する必要があります。次の AWS コマンドラインインターフェイス (AWS CLI) コマンドを実行して、指定した CloudFront パスで証明書をアップロードします。
注意: このコマンドを実行する前に、必ずすべての値を証明書と CloudFront ディストリビューションの詳細に置き換えます。
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/
注: AWS CLI コマンドの実行時にエラーが発生した場合は、
AWS CLI の最新バージョンを使用していることを確認してください。
CloudFront パスで証明書をアップロードしなかった場合は、このコマンドを実行して証明書のパスを更新します。
aws iam update-server-certificate --server-certificate-name CertificateName
--new-path /cloudfront/DistributionName/
注意: CloudFront ディストリビューションに証明書を追加すると、ディストリビューションのステータスが [Deployed] (デプロイ済み) から [In Progress] (進行中) に変わります。変更がすべての CloudFront エッジロケーションに デプロイされると、ディストリビューションのステータスは [Deployed] (デプロイ済み) に戻ります。一般的なデプロイ時間は 5 分です。
ACM または IAM の証明書を CloudFront ディストリビューションに割り当てるときは、必要な権限を持っていることを確認してください。
証明書の割り当てに使用する 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」エラー例外を解決するにはどうすればよいですか?
CloudFront で SSL/TLS 証明書を使用するための要件