【问题标题】:AWS - Error 502 between CloudFront and EC2 SSL certificate - Mobile AppAWS - CloudFront 和 EC2 SSL 证书之间的错误 502 - 移动应用程序
【发布时间】: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


【解决方案1】:

解决方案是保持上述所有内容但是

  • 从实例中删除 ssl 证书
  • 在来自 Amazon 的证书管理器中生成新的 ssl 证书(这也意味着在新证书的 CNAME 的 Route 53 中创建记录并在 Cloudfront 分发中选择新证书)。

最后,问题是两个 ssl 证书之间的冲突。只需要保留一个。

【讨论】:

    猜你喜欢
    • 2017-12-03
    • 1970-01-01
    • 1970-01-01
    • 2020-09-07
    • 1970-01-01
    • 1970-01-01
    • 2019-08-24
    • 2016-06-01
    • 1970-01-01
    相关资源
    最近更新 更多