我已经通过http正确设置了Cloudfront。它从我的网站(dev.pie.video)获取数据很好。我现在转向https。事情在https://dev.pie.video
正常运行,但Cloudfront无法为任何内容提供服务。
例如,https://dev.pie.video/favicon-96x96.png有效,但https://d1mbpc40mdbs3p.cloudfront.net/favicon-96x96.png失败,状态为502,即使我的Cloudfront分发d1mbpc40mdbs3p
指向dev.pie.video
。
如果有帮助,请提供更多详细信息:
d1mbpc40mdbs3p.cloudfront.net
使用默认的CloudFront证书进行https =====编辑1 =====
云端设置的屏幕截图:
产地:
行为:
====编辑2 ====
如果有帮助,我从云端获取的日志就像
<timestamp> SFO20 924 96.90.217.130 GET d1mbpc40mdbs3p.cloudfront.net /favicon-96x96.png 502 - <someInfoOnTheClientBrowser> 2 - Error poZyhl63JNGFk8dIIjCluGDm4dxF8EdMZFhjg82NgHGPNqcmx6ArHA== d1mbpc40mdbs3p.cloudfront.net https 494 0.002 - TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 Error HTTP/1.1
答案 0 :(得分:6)
您的原始服务器未正确配置SSL。 CloudFront需要有效的配置,并且可能比某些浏览器更严格 - 因此浏览器中的绿色锁定并不一定意味着您的SSL设置已完成并且与所有客户端普遍兼容。
$ true | openssl s_client -connect dev.pie.video:443 -showcerts
CONNECTED(00000003)
depth=0 OU = Domain Control Validated, CN = dev.pie.video
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 OU = Domain Control Validated, CN = dev.pie.video
verify error:num=27:certificate not trusted
verify return:1
depth=0 OU = Domain Control Validated, CN = dev.pie.video
verify error:num=21:unable to verify the first certificate
verify return:1
---
Certificate chain
0 s:/OU=Domain Control Validated/CN=dev.pie.video
i:/C=US/ST=Arizona/L=Scottsdale/O=GoDaddy.com, Inc./OU=http://certs.godaddy.com/repository//CN=Go Daddy Secure Certificate Authority - G2
-----BEGIN CERTIFICATE-----
MIIFMzCCBBugAwIBAgIJAL96wtFpu1ZpMA0GCSqGSIb3DQEBCwUAMIG0MQswCQYD
VQQGEwJVUzEQMA4GA1UECBMHQXJpem9uYTETMBEGA1UEBxMKU2NvdHRzZGFsZTEa
MBgGA1UEChMRR29EYWRkeS5jb20sIEluYy4xLTArBgNVBAsTJGh0dHA6Ly9jZXJ0
cy5nb2RhZGR5LmNvbS9yZXBvc2l0b3J5LzEzMDEGA1UEAxMqR28gRGFkZHkgU2Vj
dXJlIENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTE2MDgwODE4MzQ0MFoX
DTE3MDgwODE4MzQ0MFowOzEhMB8GA1UECxMYRG9tYWluIENvbnRyb2wgVmFsaWRh
dGVkMRYwFAYDVQQDEw1kZXYucGllLnZpZGVvMIIBIjANBgkqhkiG9w0BAQEFAAOC
AQ8AMIIBCgKCAQEAz/wT5j/zHKzmt3oRvst74Knqxc0pl3sp5imUJ7UegoxcTISm
xJC5qQiDsD0U08kAFxvXDd91jlozh4QDcfLE8N7X9fsxC7OW2pDv3ks/LO7tiCxn
gNmxjvYvOQ/vASrLHIal+oGWJNdBMB1eckV4xHCeBDDEizDneq/qvjN0M0k5hQ+/
qk7RjVhJUmFAfvhXpxXaCbVDq1d3V1iRBo3oP3SGV++bj/m55QPFfKCZqGPTiM5G
c9+8ru16EVCpvs0wCWBVxjTiOCGtrMLgvp9LOs8AN369Yk/3AynpgAI0DDhb5y8I
KEuCdbUaIg5Zo029iZz4nWRsZFd5CSwgX8tZNQIDAQABo4IBvjCCAbowDAYDVR0T
AQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDgYDVR0PAQH/
BAQDAgWgMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly9jcmwuZ29kYWRkeS5jb20v
Z2RpZzJzMS0yODIuY3JsMF0GA1UdIARWMFQwSAYLYIZIAYb9bQEHFwEwOTA3Bggr
BgEFBQcCARYraHR0cDovL2NlcnRpZmljYXRlcy5nb2RhZGR5LmNvbS9yZXBvc2l0
b3J5LzAIBgZngQwBAgEwdgYIKwYBBQUHAQEEajBoMCQGCCsGAQUFBzABhhhodHRw
Oi8vb2NzcC5nb2RhZGR5LmNvbS8wQAYIKwYBBQUHMAKGNGh0dHA6Ly9jZXJ0aWZp
Y2F0ZXMuZ29kYWRkeS5jb20vcmVwb3NpdG9yeS9nZGlnMi5jcnQwHwYDVR0jBBgw
FoAUQMK9J47MNIMwojPX+2yz8LQsgM4wKwYDVR0RBCQwIoINZGV2LnBpZS52aWRl
b4IRd3d3LmRldi5waWUudmlkZW8wHQYDVR0OBBYEFEPW+uDOOtZfUEdXuBs+960C
zQRKMA0GCSqGSIb3DQEBCwUAA4IBAQBLkLYJEc9E+IGv6pXaPCcYowJfji651Ju6
3DNzGXdyWfOXG+UVCMtPZuC9J66dID4Rc7HWzLveTPEI32z4IgtSjvRwRk9YyWVx
uCOpsP3e/Vgriwg5ds4NyrelQfshA3KaiTLohuiVEOBZgZgIwBEmwR2ZNFuL375E
uEn909zF9+sGkTbFnMm1zlqB2oh2UlSkUT3mj009vWF416W6kZQdFFFEmaI8uSmo
+Thd8HSxQytzWvB3dR4lCteiC09lkQPHU5t10tPgK9BtkLv05ICQQoDhFJmLeAcC
WNEmCcDnSHPxXjPi8kcyM6aqNofL1D0e1pYYvcpYQQDayWdY3tUh
-----END CERTIFICATE-----
---
Server certificate
subject=/OU=Domain Control Validated/CN=dev.pie.video
issuer=/C=US/ST=Arizona/L=Scottsdale/O=GoDaddy.com, Inc./OU=http://certs.godaddy.com/repository//CN=Go Daddy Secure Certificate Authority - G2
---
No client certificate CA names sent
---
SSL handshake has read 2010 bytes and written 431 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-GCM-SHA256
Server public key is 2048 bit
...clipped...
您的证书由&#34; Go Daddy安全证书颁发机构 - G2&#34;这是一个中间证书(不是root用户),并且您没有在服务器上安装该中间证书 - 因此CloudFront报告它是“无法”#34;连接,实际上它更准确&#34;不愿意&#34;作为安全预防措施进行连接,因为它无法验证SSL证书的有效性。您应该在Web服务器的日志中将这些视为SSL协商失败。连接本身正在运行,但由于信任问题,CloudFront认为它无效,因此使用起来不安全。
<强>注意强>
如果源服务器返回过期证书,无效证书或自签名证书,或者原始服务器以错误的顺序返回证书链,CloudFront将删除TCP连接,返回HTTP错误代码502,并设置
X-Cache
标题为Error from cloudfront
。http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/SecureConnections.html
将您的中间证书添加到您的服务器配置中,您应该进行设置。这应该在您下载时与证书捆绑在一起,但如果没有,可以在这种情况下从您的CA,Go Daddy获取。
这不是特定于Go Daddy证书的限制。遵循标准做法的所有CA都使用中间证书来建立信任链回到受信任的根。
另见:
https://www.godaddy.com/help/what-is-an-intermediate-certificate-868
答案 1 :(得分:0)
在CloudFront
(不同公司)之上使用CloudFlare
(亚马逊)时,我遇到了此问题。他们肯定有他们的https证书正确吗?
没有找到它的底部,我只是切换回http
原点。这只是一个愚蠢的ebay商店的图像,我实际上只是使用CloudFront来混淆下面的域(因为人们在ebay上窃取图像URL)。
我添加了一个查询字符串参数?a=1
,它运行正常,?a=2
失败,?a=3
工作,?a=4
工作,?a=8
再次失败。因此,CloudFront的
仍然不确定发生了什么,但失效并没有解决它,我也没想到它,因为我通过查询字符串并且更改a
并没有使它始终有效。
如果您遇到问题,请尝试添加一个无意义的参数并将其递增几次并观察结果。