当我在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
。
因此,错误消息并没有指向解决方案,我可能错过了什么呢?
3条答案
按热度按时间3ks5zfa01#
您的证书可能有效,但可能对 CloudFront 无效。错误消息没有指出的是,您可以在the docs for uploading a certificate中找到隐藏的内容:
**注意:**如果您要上载专门用于Amazon CloudFront发行版的服务器证书,则必须使用path参数指定路径。该路径必须以/cloudfront开始,并且必须包含一个尾随斜杠(例如,/cloudfront/test/)。
因此,请确保在
aws iam upload-server-certificate
命令中添加--path "/cloudfront/"
。mrphzbgm2#
我遇到了这个问题,这是因为我的构建系统不小心在Windows上切换了一个斜线
/
(但它在Linux上工作)。上面的云形成代码中的
AcmCertificateArn
是错误的。它应该是:
ar5n3qh53#
我在尝试将AWS证书附加到CloudFront发行版时遇到了同样的问题。
这个问题与AWS证书是在eu-west-1地区提供的这一事实有关。
AWS明确表示:
要在AWS证书管理器(ACM)中使用证书以要求查看器和CloudFront之间使用HTTPS,请确保在美国东部(北弗吉尼亚州)地区(us-east-1)请求(或导入)证书。
https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cnames-and-https-requirements.html
这是我的补救办法
我所要做的就是在美国东部(N. Virginia)地区(us-east-1)提供另一个AWS证书,然后在eu-west-1地区的CloudFront分发中引用它。