如何在 AWS Application Load Balancer 上将 HTTP 重定向到 HTTPS?

Sil*_*ude 14 http https redirect amazon-web-services amazon-elb

我们的网站需要遵守 HIPAA,因此所有内容都需要加密。我不希望当他们把在客户端得到一个错误信息“ HTTP://mysite.com”,所以我需要同时支持HTTP和HTTPS,并且HTTP重定向到HTTPS。我对吗?

我在网络服务器上正确地做到了。因此,如果我直接连接到 Web 服务器,HTTP 会自动重定向到 HTTPS。都好。

但是 Web 服务器位于 AWS Application Load Balancer 后面。我不知道如何在 ELB 上将 HTTP 重定向到 HTTPS。所以客户端浏览器仍然可以通过 HTTP 连接到 ELB。

如何在 AWS 应用程序负载均衡器上设置 HTTP => HTTPS?

换句话说,我确定ELB和Web服务器之间的连接是HTTPS,但是如何确保客户端浏览器和ELB之间的连接是HTTPS?

小智 14

截至 2018 年 7 月,应用程序负载均衡器支持此功能。

  • 添加/编辑您的HTTP:80听众
  • 将动作设置为 Redirect
  • 协议: https
  • 港口: 443
  • 将下一个下拉列表设置为 Original host, path, query
  • 将最后一个下拉列表设置为 301 - Permanently moved

AWS 应用程序负载均衡器上 HTTP 到 HTTPS 侦听器的设置图像


imv*_*jal -4

您可以将下面列出的配置添加到您的 .htaccess 文件中。但在此之前,请确保服务器上启用了 mod_rewrite 并且 .htaccess 文件未被拒绝。

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule . https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent]
Run Code Online (Sandbox Code Playgroud)

有关详细说明,请参阅 aws 端的官方文档。 https://aws.amazon.com/premiumsupport/knowledge-center/redirect-http-https-elb/

  • 这个答案似乎涉及[Apache HTTP Server](https://httpd.apache.org/) (7认同)
  • OP询问如何配置ELB,所以你解释一下如何配置Apache?他们明确表示他们已经配置 Apache 来执行重定向。请删除您的答案。 (2认同)