如何解决 AWS CloudFront SSL 证书不存在的问题

问题描述

当我在 CloudFormation 中将 IamCertificateId 属性添加到我的 AWS::CloudFront::distribution 时,出现以下错误

资源处理程序返回消息:“提供的请求无效:指定的 SSL 证书不存在、不在 us-east-1 区域、无效或不包含有效的证书链。”

我确实通过运行 aws iam list-server-certificates command 并确保 IamCertificateId 属性的值与证书的 the ASCA prefixed IAM ID 匹配来确保证书存在。>

我忽略了 us-east-1 区域消息,因为 IAM 是一项全球服务,而且我没有使用 ACM 证书。另外,我在中国 cn-north-1 地区开展业务,以防万一。

我很确定证书是“有效的”,因为我假设如果格式错误,AWS 不会允许我 upload the certificate with aws iam upload-server-certificate

因此,错误消息并没有将我指向解决方案。我可能会遗漏什么?

解决方法

您的证书可能有效,但可能对 CloudFront 无效。错误消息没有指出的是,您可以在 the docs for uploading a certificate 中找到隐藏的内容:

注意: 如果您要上传专门用于 Amazon CloudFront 分配的服务器证书,则必须使用 path 参数指定路径。路径必须以 /cloudfront 开头,并且必须包含一个尾部斜杠(例如, /cloudfront/test/ )。

因此,请确保在 --path "/cloudfront/" 命令中添加 aws iam upload-server-certificate