【问题标题】:Getting Error 522 with CloudFlare + AWS Application LoadBalancer使用 CloudFlare + AWS Application LoadBalancer 出现错误 522
【发布时间】:2021-04-02 03:04:07
【问题描述】:

从 ALB 链接访问 80 或 443 端口时出现错误 522 或 521(443 浏览器显示警告,即因为 ALB 和 SSL 域不同)

AWS 配置。

  1. 创建了具有 1 个公有子网和 1 个私有子网的自定义 VPC
  2. 已创建 AutoScaling 组
  3. 已创建负载均衡器(用于 http 和 https 的两个侦听器用于跟踪组)和目标组(两个目标指向端口 80 上的 Ec2 实例和用于健康检查的 443)-> 运行状况检查正在通过。
  4. 在私有子网中启动了 Ec2 实例(无公共 IP),实例只能由应用负载均衡器安全组访问。

Ec2 和 Apache2 配置。

  1. 在 apache2 中启用 SSL

  2. 实例打开443端口,ALB的安全组,访问80(http)和443(https)端口

  3. 对于 SSL 关注文章https://www.digitalocean.com/community/tutorials/how-to-create-a-self-signed-ssl-certificate-for-apache-in-ubuntu-18-04

从 CloudFlare 生成的 SSL 证书

  1. SSL/TLS -> 源服务器 -> 生成的 RSA 证书

  2. 将 SSL 证书导入 AWS ACM

  3. 将 ACM SSL 证书附加到负载均衡器 HTTPS 侦听器

  4. 还创建 AWS ACM SSL 证书并通过 DNS 验证以进行测试尝试了两个 ssl 证书 - 没有工作

子域和 ALB 链接

  1. 在 CloudFlare 中创建 DNS CNAME 条目

  2. 添加了指向 ALB 链接的子域。 (仅尝试使用代理和 DNS)

  3. 您的 SSL/TLS 加密模式是完整的

  4. 始终使用 HTTPS:开启

当在普通窗口(浏览器)中点击子域时,它会得到 522 并在隐身模式下第一次工作,但之后就不行了。

当向https://subdomain.domain.com 发出 curl 请求时,总是有效

在公共子网中创建了精确的重复实例,并与另一个子域(在 cloudflare 中创建)链接,只是为了测试 -> 正常工作。

还尝试通过为端口 443 (HTTPS) 添加单独的目标组 -> 在此 traget 组健康检查中失败,而在端口 80 (http) 的其他目标组中同样工作

我不知道如何解决这个问题,请帮助! 谢谢你。 请帮忙!

【问题讨论】:

  • 根据their documentation CloudFlare 无法访问您的网络服务器,您能否检查 ALB 安全组并确保其 IP-Ranges 在允许列表中?
  • @Maurice ALG 安全组的 80 和 443 端口对 IPv4 和 IPv6 开放。

标签: amazon-web-services amazon-ec2 apache2 cloudflare aws-application-load-balancer


【解决方案1】:

问题是因为面向 Internet 的负载均衡器在公共子网和私有子网中可用,并且由于私有子网 sloudflare 无法连接到私有子网中的 ec2 实例。 负载平衡器子网部分显示 You are creating an internet-facing Load Balancer, but there is no Internet Gateway attached to these subnets you have selected 警告。

解决方案:https://aws.amazon.com/premiumsupport/knowledge-center/public-load-balancer-private-ec2/

【讨论】:

    猜你喜欢
    • 2015-09-01
    • 1970-01-01
    • 2022-07-17
    • 2019-05-30
    • 1970-01-01
    • 2015-09-22
    • 1970-01-01
    • 2021-11-03
    • 1970-01-01
    相关资源
    最近更新 更多