CloudFront ディストリビューションでカスタム SSL 証明書を使用している場合の問題のトラブルシューティング方法を教えてください。

所要時間2分
0

私は Amazon CloudFront ディストリビューションで使用する AWS Certificate Manager (ACM) または AWS Identity and Access Management (IAM) の SSL 証明書を持っています。発生している問題のトラブルシューティングをしたい。

簡単な説明

CloudFront ディストリビューションにカスタム SSL 証明書を使用する際によく発生する問題は次のとおりです。

  • ディストリビューションを設定するときに、カスタム SSL 証明書を選ぶというオプションがない。
  • ロードバランサーで同じ証明書を使用できたとしても、SSL 証明書を選択することができない。

解決方法

CloudFront ディストリビューションでカスタム SSL 証明書を使用する際の問題をトラブルシューティングするには、以下を確認してください。

ACM からリクエストされた、または ACM にインポートされた証明書を使用している場合は、証明書が要件を満たしていることを確認します。

  • ACM 証明書を CloudFront ディストリビューションに割り当てるには、米国東部 (バージニア北部) リージョンに証明書をリクエストまたはインポートする必要があります。ACM コンソールを使用している場合は、ナビゲーションバーのリージョンセレクターを確認します。証明書をリクエストまたはインポートする前に、米国東部 (バージニア北部) が選択されていることを確認します。
    注意: ACM 証明書を CloudFront ディストリビューションに割り当てると、その証明書は CloudFront ディストリビューションの価格クラスのすべてのエッジロケーションに配布されます。
  • DNS 検証または E メール検証を使用して ACM 証明書を検証した後、証明書のステータスが「Issued」であることを確認します。証明書を CloudFront ディストリビューションに割り当てるには、ステータスが「Issued」である必要があります。
  • 証明書は、2048 ビット以下の RSA 証明書である必要があります。ACM は 1024 ビットから 4096 ビットの RSA 証明書をサポートしますが、ACM と統合された CloudFront などのサービスは最大 2048 ビット RSA 証明書をサポートします。
  • インポートされた証明書の場合、証明書が証明書をインポートするための前提条件を満たしていることを確認する必要があります。

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 証明書を使用するための要件

コメントはありません