【问题标题】:How do I route SSL traffic through an AWS "Application Load Balancer" to an EC2 instance如何通过 AWS“应用程序负载均衡器”将 SSL 流量路由到 EC2 实例
【发布时间】:2018-07-19 03:41:18
【问题描述】:

我对负载平衡器很陌生。我刚刚设置了一个监听 SSL 的设备。我还创建了一个 EC2 实例并将其添加到“Application Load Balancer”的目标组中。目标组也通过 SSL 连接。

我已经在 EC2 实例上安装了 apache,并在 /var/www/html 目录中放置了一个 index.html 文件。

我原以为键入负载均衡器关联的域地址 (www.example.com) 会将我路由到 EC2 实例的 index.html 文件(这是唯一的目标)。但是我收到 Bad Gateway 502 错误。

最初我在 EC2 上只有 SSH 入站规则。我为 HTTPS 打开了 443,但这并没有什么不同。

我需要在 EC2 和负载均衡器上安装 SSL 证书吗?我需要打开任何额外的端口吗?

对这一切都很陌生,不确定负载均衡器如何与 EC2 实例通信。希望它是内部的,这样 EC2 实例就不会被孤立地暴露出来。

【问题讨论】:

  • 能否通过负载均衡器的 DNS 名称访问索引页面?
  • 我的负载均衡器只监听 443,所以我在 SSL 域上设置了一个 A 规则,这是我连接到负载均衡器的方式。因此,输入该域名应该连接到负载均衡器并路由到 EC2 实例,但它没有
  • 那么当有人尝试http://www.example.com时会发生什么?
  • 502 错误网关 - 它转到 https://www.example.com

标签: ssl amazon-ec2 routing elastic-load-balancer


【解决方案1】:

这里有很多事情可能会出错,但是(假设您已正确配置负载均衡器)我认为如果您将 HTTP 侦听器添加到负载均衡器,将目标组的协议更改为 HTTP(因为负载平衡器通过 HTTP 与 EC2 对话),然后将类似这样的内容添加到您的 .htaccess

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule . https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent]

您可以阅读更多here

【讨论】:

  • 感谢您的回复,但我只需要 SSL 以确保安全。我设法让它使用另一个带有有效 SSL 证书的 EC2 实例来工作。因此,Application Load Balancer 和 EC2 实例都具有有效的 SSL 证书。两者上唯一打开的端口是 443 SSL(和 SSH)。只需输入负载均衡器的 url 即可成功将请求转发到 EC2 实例。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-15
  • 2019-10-18
  • 2017-03-21
  • 1970-01-01
  • 2015-05-25
  • 2018-02-21
  • 2018-07-18
相关资源
最近更新 更多