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

Yan*_*man 8 ssl amazon-web-services amazon-cloudfront aws-cloudformation amazon-iam

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

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

我确实通过运行命令aws iam list-server-certificates 确保属性值与证书的前缀IAM IDIamCertificateId匹配来确保证书存在。ASCA

我忽略了us-east-1区域消息,因为 IAM 是一项全球服务,并且我没有使用 ACM 证书。另外,我在中国cn-north-1地区运营,以防产生影响。

我非常确定该证书是“有效的”,因为我假设 AWS 不会允许我上传格式错误的证书。aws iam upload-server-certificate

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

Yan*_*man 3

您的证书可能有效,但对于CloudFront可能无效。错误消息没有指出的是,您可以在上传证书的文档中找到隐藏的内容:

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

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

  • 根据此[文档](https://docs.amazonaws.cn/en_us/AmazonCloudFront/latest/DeveloperGuide/cnames-and-https-requirements.html#https-requirements-size-of-public-key),长度CloudFront 证书的长度不得超过 2048 位。我的证书是 4096 位,这就是我的情况出现问题的原因。 (2认同)