首页 文章

如何在上传到Amazon / CloudFront时验证SSL证书链?

提问于
浏览
1

我们使用cloudfront通过自定义域提供图像 .

http://images.example.com/fubar.png

我们希望能够使用SSL访问它们,例如 https://images.example.com/fubar.png

我们为 *.example.com 提供了通配符SSL证书(由Godaddy发布),我使用 AWS Certificate Manager 上传证书,私钥和钥匙串 . 上传似乎已成功,因为 *.example.com 似乎是 issued (根据证书管理器) .

然后我按照Update the CloudFront Distribution的说明添加 images.example.com ,为 Custom SSL Certificate 选择了选项并确保 Distribution Stateenabled . 当我单击 Yes, Edit 按钮时,出现以下错误:

com.amazonaws.services.cloudfront.model.InvalidViewerCertificateException: The specified SSL certificate doesn't exist, isn't in us-east-1 region, isn't valid, or doesn't include a valid certificate chain. (Service: AmazonCloudFront; Status Code: 400; Error Code: InvalidViewerCertificate; Request ID: a62cf849-d495-11e7-94d9-673e2e2905b1)

我已在其他地方成功使用此SSL证书 . 如果它有帮助,我最初使用Windows机器创建此证书以发出请求,然后从Godaddy下载证书 . 我不再能够访问此下载,但我可以访问Windows Server上的PFX文件 . 我拿这个PFX文件(有私钥)(名为SSLWildcard.pfx)并使用OpenSSL获取证书和私钥 . 我使用了以下命令:

openssl pkcs12 -in SSLWildcard.pfx -nocerts -out SSLWildcard.key
openssl rsa -in SSLWildcard.key -out SSLWildcard-decrypted.key
openssl pkcs12 -in SSLWildcard.pfx -clcerts -nokeys -out SSLWildcard.crt

我使用了CRT和KEY文件的内容(我使用了解密的密钥文件)和GoDaddy的公共证书链文件 gd_bundle-g2-g1.crt . 我尝试过使用GoDaddy's public repository中的各种证书(和组合),但我做错了吗?

1 回答

  • 0

    错误消息有一个线索:当使用证书进行cloudfront时,它必须位于us-east-1中 .

    您没有提到您上传证书的区域,但如果您要部署到Cloudfront,请确保它位于us-east-1 .

    如果证书在us-east-1中,还有另外一条线索:

    Error Code: InvalidViewerCertificate
    

    如果您使用为公共Web托管配置的S3存储桶,则无法通过https在cloudfront和s3之间进行通信 - 它必须是http . 有关详细信息,请参阅here .

相关问题