AWS Builder Center: Learn, Build and Connect with builders in the AWS community
AWS Builder Center is the official home for builders on AWS. Share and read what others are working on, follow people who inspire you, explore training and workshops, and find tools to support what you're building.
为什么我不能为我的 CloudFront 分配选择自定义 SSL/TLS 证书?
我想在设置我的 Amazon CloudFront 分配时使用自定义 SSL/TLS 证书,但我无法选择它。
简短描述
在以下情况下,您可能看不到适用于 CloudFront 分配的自定义 SSL/TLS 证书选项:
- 您的证书存储在不同的 AWS 区域。
- AWS Certificate Manager (ACM) 证书验证失败。
- 证书已过期。
- 您没有所需的 AWS Identity and Access Management (IAM) 权限来查看或选择证书。
解决方法
**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI。
检查您的证书配置
根据您的 CloudFront 分配配置执行以下故障排除操作。
ACM 证书
如果您使用的是从 ACM 请求的证书或导入到 ACM 的证书,请确认您的证书符合以下要求:
- 要将 ACM 证书分配给 CloudFront 分配,请在美国东部(弗吉尼亚州北部)区域请求或导入该证书。如果您使用 ACM 控制台,请在申请或导入证书之前检查导航栏以确认选择了美国东部(弗吉尼亚州北部)。
**注意:**将 ACM 证书分配给 CloudFront 分配后,CloudFront 将该证书分发到 CloudFront 分配的价格等级的所有边缘站点。 - 使用 DNS 验证或电子邮件验证来验证您的 ACM 证书后,确认证书的状态为 Issued(已颁发)。
**注意:**状态必须为 Issued(已颁发),您才能将证书分配给 CloudFront 分配。 - 您可以使用自签名证书仅验证现有的 CNAME 记录,不能验证新的 CNAME 记录。CloudFront 支持与 Mozilla 相同的证书颁发机构。有关详细信息,请参阅使用备用域名的要求。
- 对于导入的证书,请确认该证书符合导入证书的先决条件。有关详细信息,请参阅如何将第三方颁发的 TLS/SSL 证书导入 ACM?
- 使用 CloudFront 支持的 RSA 证书密钥大小,例如 1024 位、2048 位、3072 位或 4096 位。
有关详细信息,请参阅为什么我无法找到为我的负载均衡器或 CloudFront 分配导入的证书?
证书已导入到 IAM
如果您已将 SSL/TLS 证书导入到 IAM,请确认您使用了正确的 CloudFront 路径。运行以下 upload-server-certificate AWS CLI 命令,以使用特定 CloudFront 路径上传您的证书:
aws iam upload-server-certificate --server-certificate-name CertificateName --certificate-body file://public_key_certificate_file.pem --private-key file://privatekey.pem --certificate-chain file://certificate_chain_file.pem --path /cloudfront/DistributionName/
**注意:**将 CertificateName 替换为您的证书名称,将 file://public_key_certificate_file 替换为您的公钥,将 file://privatekey.pem 替换为您的私钥。另外,将 file://certificate_chain_file 替换为您的证书链,将 DistributionName 替换为您的 CloudFront 分配名称。
如果您未使用 CloudFront 路径上传证书,请运行以下 update-server-certificate 命令使用该路径更新您的证书:
aws iam update-server-certificate --server-certificate-name CertificateName --new-path /cloudfront/DistributionName/
**注意:**将 CertificateName 替换为您的证书名称,将 DistributionName 替换为您的 CloudFront 分配名称。向 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" } ] }
其他故障排除
如果您已将 SSL/TLS 证书导入到 IAM,请确认证书链的顺序正确且证书未过期。有关详细信息,请参阅如何上传 SSL 证书并将其导入 IAM?
要在 CloudFront 分配中使用多个域名,请申请或生成包含所有必需域名的单个 SSL/TLS 证书。默认情况下,ACM 支持每个证书最多 100 个域。
**注意:**无法将多个 SSL/TLS 证书关联到单个 CloudFront 分配。
相关信息
如何使用 ACM 解决 CloudFront 分配域名错误?"InvalidViewerCertificate"
- 语言
- 中文 (简体)

