如何在 ELB 应用程序负载均衡器上将 HTTPS 重定向到 HTTP

Posted

技术标签:

【中文标题】如何在 ELB 应用程序负载均衡器上将 HTTPS 重定向到 HTTP【英文标题】:How to redirect HTTPS to HTTP on ELB Application Load Balancer 【发布时间】:2019-09-23 02:06:36 【问题描述】:

在亚马逊的“经典负载均衡器”上,您可以创建一个规则来将 HTTPS 连接转发到 HTTP,通过将证书上传到负载均衡器并让服务器只处理 http 来简化 SSL 和服务器配置。

我现在正尝试使用亚马逊的新一代“应用程​​序负载均衡器”复制相同的设置,但新的规则系统似乎不允许这样做。

我可以创建一个规则来监听 HTTPS/443 并重定向,但它只允许我重定向到 HTTPS 或“#protocol://#host:80/#path?#query ”,这仍然意味着我的服务器必须支持 HTTPS,我想避免这种情况,因为这意味着每个服务器仍然必须包含 SSL 证书并具有端口 443 的站点配置。

新一代 ELB 不支持此功能,还是有其他配置方式?

【问题讨论】:

【参考方案1】:

根据https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html

您可以使用 HTTPS 侦听器来卸载加密和 解密到您的负载均衡器,以便您的应用程序可以专注于 关于他们的业务逻辑。如果侦听器协议是 HTTPS,则必须 在侦听器上部署至少一个 SSL 服务器证书。更多 信息,请参阅为您的应用程序负载创建 HTTPS 侦听器 平衡器。

您需要做的是设置 HTTPS 侦听器、要附加到侦听器的 AWS IAM 服务器证书以及 HTTP 目标组。然后,您可以将在 HTTP 中侦听的实例/服务器附加到该目标组。正如迈克尔所说,这不是“重定向”而是“转发”到您的目标群体的规则。

【讨论】:

【参考方案2】:

您似乎混淆了两件不相关的事情。

重定向用于告诉浏览器将其请求重新发送到不同的目的地。

在 ALB 上,要获得 TLS 卸载(这就是您所描述的),您需要做的就是创建一个指向实例上端口 80 的目标组,然后在 HTTPS 侦听器上设置默认规则将流量发送到该目标组。

【讨论】:

我在负载均衡器上有一个 https 侦听器,并在目标组上打开了端口 80,但是当我转到负载均衡器端点时,它与目标组的连接被拒绝

以上是关于如何在 ELB 应用程序负载均衡器上将 HTTPS 重定向到 HTTP的主要内容,如果未能解决你的问题,请参考以下文章

弹性负载均衡----ELB

将 ELB 实例附加到“应用程序负载均衡器”

健康检查类型ELB具有多个负载均衡器

将 http 重定向到 https AWS 应用程序负载均衡器

如何在 Istio 中设置 AWS ALB 而不是 ELB?

如何为 wordpress 添加 ELB 并启用 https