cloudfront 和 elb (AWS) 之间的 502

502 between cloudfront and elb (AWS)

  1. 我已经设置了一个 EC2,上面安装了 WordPress。它在端口 80 上侦听。

  2. 我在其上创建了一个应用程序负载平衡器,并使用 ACM 并创建了一个证书(由 Amazon 签名),并创建了一个 HTTPS 侦听器,将它从 443 转发到 80 (1) EC2。 侦听器使用 ELBSecurityPolicy-TLS-1-2-Ext-2018-06 作为安全策略。

  3. 我配置了从域到ELB的route53A规则。这非常有效。

  4. 之后我尝试创建一个 Cloudfront 发行版 - 仅使用正确的 CN 名称和自定义证书(与 (2) 中使用的证书相同)支持 HTTPS。

  5. 我得到了臭名昭著的 502。

  6. 我读了很多关于试图解决它的帖子...并严格按照这个工作示例 - https://www.youtube.com/watch?v=9O2bqYqySEY。什么都不适合我。我仍然收到 502 错误

  7. 我使用 openssl (openssl s_client -connect mydomain:443) 来尝试理解它 - 我得到


---
No client certificate CA names sent
Peer signing digest: SHA256
Peer signature type: RSA-PSS
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 5479 bytes and written 373 bytes
Verification: OK
---
New, TLSv1.3, Cipher is TLS_AES_128_GCM_SHA256
Server public key is 2048 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
---
closed

令我感到奇怪的是它使用了 TLSv1.3(我知道 AWS 几个月前才添加)。

顺便说一句,当我尝试 运行 在工作情况下(第 3 阶段)使用相同的 openssl - 我看到它在工作时使用的是 TLSv1.2。

我也试图找到一个选项来强制让 Cloudfront 使用 TLSv1.2,但我找不到。

我知道很多人问过这个话题 - 但是,我认为这是一个新问题,因为最近添加了 v1.3,其他答案都没有帮助。

有什么建议吗? 谢谢

好的 - 原来问题出在 ELB 的安全策略上。 一开始我没有将它配置为 ELBSecurityPolicy-TLS-1-2-Ext-2018-06(而是默认值)。然后我将其切换为 ELBSecurityPolicy-TLS-1-2-Ext-2018-06...

但没有看到任何变化。几个小时后我放弃了,我再次检查它并且成功了 - 所以我猜它需要一些时间/缓存。

现在一切正常。