如何排查与在我的 CloudFront 分配上使用自定义 SSL 证书有关的问题?

上次更新时间:2020 年 6 月 18 日

我在 AWS Certificate Manager (ACM) 或 AWS Identity and Access Management (IAM) 上拥有 SSL 证书,我想将它用于我的 Amazon CloudFront 分配。在设置我的分配时,没有用于选择我的自定义 SSL 证书的选项。虽然我能将相同的证书用于我的负载均衡器,但却无法选择 SSL 证书。或者我收到了“InvalidViewerCertificate”错误消息。我应该如何排查此问题?

解决方法

要排查与在 CloudFront 分配上使用自定义 SSL 证书有关的问题,请执行以下操作:

解决“InvalidViewerCertificate”错误

如果您在尝试创建或更新分配时收到了“InvalidViewerCertificate”错误,请参阅如何解决创建或更新 CloudFront 分配时的“InvalidViewerCertificate”错误?

如果您使用的是从 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/

如果您未使用 CloudFront 路径上传证书,请运行以下命令以使用该路径更新您的证书: 

aws iam update-server-certificate --server-certificate-name CertificateName 
--new-path /cloudfront/DistributionName/

注意:当您向 CloudFront 分配添加证书后,分配的状态将从已部署变为正在进行。将更改将部署到所有 CloudFront 边缘站点时,分配的状态将重新变为已部署典型的部署时间是 5 分钟

确认您具有所需的权限

要将来自从 ACM 或 IAM 的证书指定到 CloudFront 分配,您用来指定证书的 IAM 用户或角色必须至少拥有以下权限: 

{
    "Version": "2012-10-17",
    "Statement": {
        "Effect": "Allow",
        "Action": [
            "acm:ListCertificates",
            "cloudfront:List*",
            "cloudfront:Get*",
            "cloudfront:Update*",
            "iam:GetServerCertificate",
            "iam:ListServerCertificates",
            "iam:UpdateServerCertificate"
        ],
        "Resource": "*"
    }
}

这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助?