我已经通过http正确地设置了Cloudfront。它从我的网站(www.example.com)获取数据很好。我现在正在转移到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
。dev.pie.video) fine. I'm now moving to https. Things are working fine at https://dev.pie.video
but Cloudfront is unable to server any content. For instance https://dev.pie.video/favicon-96x96.png works but https://d1mbpc40mdbs3p.cloudfront.net/favicon-96x96.png fails with status 502, even though my Cloudfront distribution d1mbpc40mdbs3p
points to dev.pie.video
.
如果有帮助,请提供更多详细信息:
d1mbpc40mdbs3p.cloudfront.net
对https使用默认的CloudFront证书- cloudfront分发的源设置为通过SSL和TLS工作,并使用查看器的协议。
=====编辑1 ====
cloudfront设置的屏幕截图:
通用:
产地:
行为:
第一节第二节第一节第三节第一节
====编辑2 ====
如果有帮助的话我从cloudfront得到的日志看起来
<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
5条答案
按热度按时间mo49yndu1#
您的源服务器的SSL配置不正确。CloudFront需要有效的配置,并且可能比某些浏览器更严格--因此浏览器中的绿色锁并不一定意味着您的SSL设置已完成并且与所有客户端普遍兼容。
您的证书由中间证书"Go Daddy Secure Certificate Authority-G2"签名(不是根),并且您的服务器上没有安装该中间证书--因此CloudFront报告它"无法"连接,而实际上更准确地说,它"不愿意"连接,作为安全预防措施,因为它无法验证您的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
https://certs.godaddy.com/repository
vkc1a9a22#
万一有帮助(我是Lightsail的新手)
我有一个类似的问题,当创建一个光帆分布。
Origin protocol policy
设置为HTTP
(因为您的源确实只能提供HTTP,除非您也在那里添加SSL证书)细节
我遵循了文档,特别是https://lightsail.aws.amazon.com/ls/docs/en_us/articles/amazon-lightsail-creating-content-delivery-network-distribution#distribution-origin-protocol-policy
我创造了:
错误:浏览器显示502错误页面
我遇到的问题是“Original protocol policy”被设置为HTTPS only,尽管Lightsail示例只能提供HTTP。我将“Original protocol policy”更改为HTTP,然后页面服务正常(作为HTTPS)。
SSL证书和HTTPS似乎可以完全由分发来处理,并且不需要在示例上配置(前提是您将“源协议策略”设置为HTTP)。
粗略的高级图片如下所示:
当然,缺点是我的Lightsail示例将页面作为HTTP提供给任何知道其静态IP地址的人...
ndasle7k3#
我遇到了同样的问题。我采取了以下步骤:
1.已查看ALB Lister选项卡并检查端口443。
1.有两个证书,其中一个已过期,ALB指向较新的一个,但我们仍然收到502错误。
谢谢Santosh Garole
gzszwxb44#
我有类似的问题,我不选择网站端点时,选择来源,即使它是提示使用它固定。
在我的情况下,即使cloudfront ssl证书不工作,但我能够通过网站端点连接没有cloudfront。
此外,我需要设置默认根对象为index.html,以使其工作。
7fyelxc55#
我在
CloudFlare
(不同的公司)上使用CloudFront
(Amazon)时遇到过这个问题。他们的https证书肯定正确吗?我还没弄清楚,我就把源代码切换回
http
,这只是一个愚蠢的ebay商店的图片,我真的只是用CloudFront来混淆下面的域(因为人们在ebay上窃取图片URL)。我添加了一个查询字符串参数
?a=1
,它工作了,?a=2
失败了,?a=3
工作了,?a=4
工作了,?a=8
又失败了。仍然不知道发生了什么,但无效没有修复它,也没有我期望它,因为我通过查询字符串和更改
a
并没有使它总是工作。如果你遇到了问题,试着添加一个无意义的参数,并增加它几次,然后观察结果。