Openssl Can';t为Cloudfront创建有效的IAM SSL证书

Openssl Can';t为Cloudfront创建有效的IAM SSL证书,openssl,ssl-certificate,amazon-cloudfront,pem,amazon-iam,Openssl,Ssl Certificate,Amazon Cloudfront,Pem,Amazon Iam,我通过运行良好的ole创建了CSR $ openssl req -nodes -newkey rsa:4096 -keyout example.key -out example.csr 这产生了example.csr和example.key 然后,我得到了签名并收到了4.crt文件。我的domain.crt,2个中间产物和根 从这个:,我推测Amazon希望我的私钥是PEM编码的,所以我跑了 $ openssl rsa -in example.key -text > example.pe

我通过运行良好的ole创建了CSR

$ openssl req -nodes -newkey rsa:4096 -keyout example.key -out example.csr
这产生了example.csr和example.key

然后,我得到了签名并收到了4.crt文件。我的domain.crt,2个中间产物和根

从这个:,我推测Amazon希望我的私钥是PEM编码的,所以我跑了

$ openssl rsa -in example.key -text > example.pem
Cloudfront还需要一个他们称之为CertificateCain的文件,从和开始,似乎该文件应该是连接在一起的两个中间证书。因此,我使用文本编辑器创建了该文件,并将其命名为example.crt.chain

最后,我手里拿着这些,跑了

$ aws iam upload-server-certificate --server-certificate-name star-assets-example-com --certificate-body file://STAR_assets_example_com.crt --private-key file://example.pem --certificate-chain file://example.crt.chain --path /cloudfront/assets/
这让我想起了“ServerCertificateMetadata”。最后,我转到Cloudfront控制台,尝试将该证书设置为Cloudfront的“自定义SSL证书”。但是,它告诉我

AWS Error Code: InvalidViewerCertificate, AWS Error Message: The specified SSL certificate doesn't exist in the IAM certificate store, isn't valid, or doesn't include a valid certificate chain.
我尝试过的修改。

  • 在链中包括和不包括根证书。两者都上传,但都不起作用
  • 我已经尝试从我的PEM文件头中删除“模数”、“privateExponent”、“prime1”等,以便它只包含“----开始RSA私钥----------结束RSA私钥------”之类的内容,就像AWS文章所建议的那样。两者都上传,但都不起作用
  • 更改链文件中证书的顺序会导致上载工具出现无效错误
  • 不包括证书链,但这显然违背了cloudfront所说的我需要的
  • 使用我的原始example.key文件而不是
    openssl rsa
    编码的PEM文件。这会从上传工具中产生错误。此文件的格式为“----开始私钥----------结束私钥------”

  • 因此,我的错误只是因为我的证书太长。最大长度是2048,而我的是4096!我通过阅读这里类似的问题发现了我的问题


    我想这就是那个晦涩难懂的“病人”的意思。我真的希望有更多的验证和更好的错误消息

    我也遇到了这个错误,但结果证明我还需要从颁发者上传证书链。这是我运行的最后一个命令

    aws iam upload-server-certificate --server-certificate-name <name> --certificate-body file://domain.crt --private-key file://domain.key  --certificate-chain file://issuer.cer --path /cloudfront/
    
    aws iam上载服务器证书--服务器证书名称--证书正文file://domain.crt --私钥file://domain.key  --证书链file://issuer.cer --小径/云端/
    
    也出现了这个错误,我花了很多时间试图找出失败的原因(密钥大小超过2048,证书链等)

    在通过Terraform(指定)创建分发时,我试图使用IAM证书。查看了用于创建分发的AWS web界面后,没有输入IAM证书Id的选项,并且它似乎只允许ACM证书。是否曾经存在对IAM证书的支持(包括它),但现在已被放弃(AWS控制台上不可用)


    当使用ACM证书而不是IAM证书时,对我来说效果很好。

    您必须购买全新的证书吗?我也遇到了同样的问题。我认为您通常可以让SSL证书提供商使用新的长度重新签署新的证书签名请求(CSR)