Amazon CloudFront ディストリビューションを作成または更新する際に "InvalidViewerCertificate" エラーが発生するため、AWS Certificate Manager (ACM) を使用してトラブルシューティングしたいと考えています。
解決策
証明書が要件をすべて満たしていることを確認する
次のエラーメッセージが表示されます。
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. (指定された SSL 証明書は、存在しないか、us-east-1 リージョンに配置されていないか、有効でないか、有効な証明書チェーンを含んでいません)
この問題を解決するには、次の手順を実行します。
証明書には次の構成を使用します。
- 米国東部 (バージニア北部) リージョンで証明書をインポートします。
- 4096 ビット以内の証明書キーを使用します。
- パスワード保護を行わないでください。
- 証明書を PEM エンコードします。
CNAME を含む証明書を使用する
次のエラーメッセージが表示されます。
"To add an alternate domain name (CNAME) to a CloudFront distribution, you must attach a trusted certificate that validates your authorization to use the domain name." (ドメイン名の使用許可を検証するための、信頼済み証明書をアタッチする必要があります)
このエラーは、証明書のサブジェクト代替名 (SAN) に CloudFront ディストリビューションで指定した CNAME が含まれていない場合に発生します。
この問題を解決するには、パブリック証明書をリクエストします。または、認証局 (CA) にお問い合わせのうえ、ディストリビューションの CNAME を含めて証明書を更新するよう依頼します。
使用する証明書を 5 つ以内にする
次のエラーメッセージが表示されます。
"The certificate that is attached to your distribution has too many certificates in the certificate chain." (証明書チェーン内の証明書数が多すぎます)
このエラーは、チェーン内の証明書数制限 (5) を超過した場合に発生します。この問題を解決するには、含まれる証明書が 5 つ以内である新しい証明書チェーンを使用します。
現在の CA が 5 つ以下の証明書をサポートしていない場合は、パブリック証明書をリクエストします。
最新の証明書チェーンを取得する
次のいずれかのエラーメッセージが表示されます。
"The certificate that is attached to your distribution has one or more expired certificates in the certificate chain.Make sure that each certificate in the chain is valid for the current date by reviewing the Not Valid After field." (証明書チェーンに期限切れ証明書が含まれています)
または、
"The certificate that is attached to your distribution has one or more certificates in the certificate chain that aren't valid yet.Make sure that each certificate in the chain is valid for the current date by reviewing the Not Valid Before field." (証明書チェーンに、まだ有効化されていない証明書が含まれています)
証明書が期限切れの場合は、CA から最新の証明書チェーンを取得する必要があります。
次の手順を実行します。
- CA から適切なチェーンファイルをダウンロードします。
- 証明書とチェーンを ACM または AWS Identity and Access Management (IAM) に再度インポートします。
- リクエストを再試行し、CloudFront ディストリビューションを作成するか更新します。
まだ有効化されていない証明書は、インポートできません。証明書の "Not Valid Before" フィールドを確認したうえで、リクエストを再試行します。
リクエストを再試行できない場合は、パブリック証明書をリクエストします。
信頼された CA を使用する
次のエラーメッセージが表示されます。
"The certificate that is attached to your distribution was not issued by a trusted Certificate Authority."
この問題を解決するには、CloudFront で信頼された CA により発行された、CNAME レコードの使用を許可する証明書を入手します。現在の CA ではこのシナリオに対応できない場合は、パブリック証明書をリクエストします。
注: 自己署名証明書では、既存の CNAME レコードのみを検証できます。新しい CNAME レコードは検証できません。
SAN フィールドのフォーマットを確認する
次のエラーメッセージが表示されます。
"The certificate that is attached to your distribution has a value in the SAN field that is not correctly formatted."
CloudFront では、各エントリは完全修飾ドメイン名 (FQDN) 形式の DNS 名、または IP アドレスである必要があります。ワイルドカードエントリは有効ですが、そのワイルドカードよりも上位または下位の CNAME を追加することはできません。
現在の CA ではこのシナリオに対応できない場合は、パブリック証明書をリクエストします。
API コールに CNAME を追加する
次のエラーメッセージが表示されます。
"The certificate that you specified doesn't cover the alternate domain name (CNAME) that you're trying to add."
このエラーは、ディストリビューションへの関連付けを試行した CNAME は、証明書の SAN に含まれていない場合に発生します。この問題を解決するには、CreateDistribution または UpdateDistribution API コールで CNAME を指定する必要があります。
API 呼び出しを再試行する
次のエラーメッセージが表示されます。
"CloudFront encountered an internal error.Please try again."
CreateDistribution または UpdateDistribution API コールを実行した際に上記のエラーメッセージが発生した場合は、呼び出しを再試行します。この問題が長期間続く場合は、AWS Health Dashboard に関連する問題が表示されていないか確認します。
関連情報
CloudFront ディストリビューションでカスタム SSL/TLS 証明書を選択できない原因を教えてください