ssl CloudFront无法连接到源

y1aodyip  于 2023-02-04  发布在  其他
关注(0)|答案(5)|浏览(1147)

我已经通过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
mo49yndu

mo49yndu1#

您的源服务器的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...

您的证书由中间证书"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

vkc1a9a2

vkc1a9a22#

万一有帮助(我是Lightsail的新手)
我有一个类似的问题,当创建一个光帆分布。

  • TLDR:* 尝试将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
我创造了:

  • Lightsail示例(PHP位图)
  • 为动态站点配置分发,并通过创建SSL证书使用HTTPS
  • 已创建DNS区域
  • 配置域以指向该DNS区域的名称服务器
  • 已在DNS区域的DNS记录中配置A + CNAME记录,以指向分发

错误:浏览器显示502错误页面
我遇到的问题是“Original protocol policy”被设置为HTTPS only,尽管Lightsail示例只能提供HTTP。我将“Original protocol policy”更改为HTTP,然后页面服务正常(作为HTTPS)。
SSL证书和HTTPS似乎可以完全由分发来处理,并且不需要在示例上配置(前提是您将“源协议策略”设置为HTTP)。
粗略的高级图片如下所示:

browser <-- https --> Distribution <-- http --> Instance

当然,缺点是我的Lightsail示例将页面作为HTTP提供给任何知道其静态IP地址的人...

ndasle7k

ndasle7k3#

我遇到了同样的问题。我采取了以下步骤:
1.已查看ALB Lister选项卡并检查端口443。
1.有两个证书,其中一个已过期,ALB指向较新的一个,但我们仍然收到502错误。

  1. AWS支持建议从443侦听器中删除过期。
    谢谢Santosh Garole
gzszwxb4

gzszwxb44#

我有类似的问题,我不选择网站端点时,选择来源,即使它是提示使用它固定。
在我的情况下,即使cloudfront ssl证书不工作,但我能够通过网站端点连接没有cloudfront。
此外,我需要设置默认根对象为index.html,以使其工作。

7fyelxc5

7fyelxc55#

我在CloudFlare(不同的公司)上使用CloudFront(Amazon)时遇到过这个问题。他们的https证书肯定正确吗?
我还没弄清楚,我就把源代码切换回http,这只是一个愚蠢的ebay商店的图片,我真的只是用CloudFront来混淆下面的域(因为人们在ebay上窃取图片URL)。
我添加了一个查询字符串参数?a=1,它工作了,?a=2失败了,?a=3工作了,?a=4工作了,?a=8又失败了。
仍然不知道发生了什么,但无效没有修复它,也没有我期望它,因为我通过查询字符串和更改a并没有使它总是工作。
如果你遇到了问题,试着添加一个无意义的参数,并增加它几次,然后观察结果。

相关问题