我上传了一个自定义SSL证书和密钥,以便通过AWS CLI与AMI用户一起使用CloudFront:
$ aws iam upload-server-certificate --server-certificate-name my-cert --certificate-body file://https-cert.crt --private-key file://private-key.pem
我收到了json回复,包括证书ID和更多信息。我的目标是将其用作自定义SSL证书(通过AWS购买的AMI用户证书或ACM证书),但此选项的单选按钮仍保持禁用状态。我希望它在将证书添加到我的用户后才能激活。
我找不到任何暗示我错过的内容或上传的证书已经消失的地方。
解:
丢失的/cloudfront/
路径是此问题的关键。以下命令允许我上传并在CloudFront中选择证书。
aws iam upload-server-certificate --server-certificate-name my-cert --certificate-body file://https-cert.crt --certificate-chain file://ca-chain.crt --private-key file://private-key.pem --path /cloudfront/
答案 0 :(得分:4)
CloudFront无权访问您上传的服务器证书的所有(例如您可能上传的用于ELB的证书)。它只能访问路径匹配/cloudfront/*
的那些。
如果要上载专门用于Amazon CloudFront分配的服务器证书,则必须使用
--path
选项指定路径。路径必须以/ cloudfront开头,并且必须包含尾部斜杠(例如,/ cloudfront / test /)。http://docs.aws.amazon.com/cli/latest/reference/iam/upload-server-certificate.html
使用CloudFront可以看到的路径上传证书似乎可能是您错过的流程的一部分,因为您在问题中未提及已完成此操作。
答案 1 :(得分:2)
如果您提供不合规自定义证书,Cloudfront会忽略它们。这就是为什么它会变灰并说“没有可用的证书”。
如果您点击“了解自定义SSL”链接,则会显示更多信息。 (http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/SecureConnections.html#CNAMEsAndHTTPS)
有一节说明“使用CloudFront使用SSL / TLS证书的要求和限制”。所有这些将告诉您如何为Cloudfront创建自定义证书合规性。