【发布时间】:2022-01-20 11:20:18
【问题描述】:
- 我有一个 EC2 实例,我通过 LetsEncrypt 安装了 SSL 证书
- 实例托管 FastApi 和 Gunicorn,用作移动应用的服务器
- EC2 实例附加了一个弹性 IP
- 所有入站和出站 EC2 端口均已打开
- 我已在 Certificate Manager (east-2 Virginia) 中导入 LetsEncrypt 生成的 SSL 证书
- 我在 Route53 中创建了一个托管区域,添加了一个域 (www.example.com) 并创建了 CAA(0 期“letsencrypt.org”)+ 根据 Route53 NS 中的名称更改了 godaddy 中的名称服务器
- 我创建了一个 CloudFront 分配,以 EC2 实例的公共 IPv4 DNS 作为源,将 HTTP 重定向到 HTTPS,将自定义 SSL 证书设置为与证书管理器 (LetsEncrypt) 和备用域名 ( CNAME) 添加了www.example.com
- 我已经在Route53的A记录中添加了CloudFront Distribution域名
鉴于这些前提,如果 CloudFront 分配域名或域名被 ping 通,则在 EC2 实例中没有可访问的登录 html 页面(如 hello world!)。
但是,如果我 ping 它,我会收到 502 错误(502 错误请求无法满足。 CloudFront 无法连接到源。我们目前无法连接到此应用或网站的服务器)。
除了“附加证书部分”(不在“服务器密钥和证书 #1”中)中的“链问题不正确的顺序,额外的证书”和 X-Cache 说之外,该域在 SSLlab 中得到验证,没有抛出错误:来自 CloudFront 的错误。
如何解决 502 错误?
编辑
我已经在评论中发布了解决方案
【问题讨论】:
-
这可能是 1 连接(本地防火墙、安全组或 NACL),2 服务器没有响应您期望的主机名(实例或 DNS 问题),或者 3 应用程序设置正确但返回错误(可能 CloudFront 未传递必需的标头或特定于应用程序的内容)。检查实例上的日志以了解来自 CloudFront 的连接以及任何特定于应用程序的错误日志。编辑您的问题以添加您的发现。
标签: amazon-web-services ssl amazon-ec2 amazon-cloudfront lets-encrypt