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

最終更新日: 2020 年 10 月 5 日

私は Amazon CloudFront ディストリビューションで使用する AWS Certificate Manager (ACM) または AWS Identity and Access Management (IAM) の SSL 証明書を持っています。ディストリビューションを設定するときに、カスタム SSL 証明書を選ぶというオプションがありません。ロードバランサーで同じ証明書を使用できたとしても、SSL 証明書を選択することができません。または、「InvalidViewerCertificate」エラーが表示されます。この問題を解決するには、どうすればよいですか?

解決方法

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

「InvalidViewerCertificate」エラーを解決する

ディストリビューションの作成または更新時に「InvalidViewerCertificate」エラーが発生する場合は、「CloudFront ディストリビューションを作成または更新するときの「InvalidViewerCertificate」エラー例外の解決方法を教えてください」を参照してください。

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"
        }
    ]
}

この記事はお役に立ちましたか?


請求に関するサポートまたは技術的なサポートが必要ですか?