如何在 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的主要内容,如果未能解决你的问题,请参考以下文章
将 http 重定向到 https AWS 应用程序负载均衡器