【问题标题】:Redirect http to https AWS Application Load Balancer将 http 重定向到 https AWS 应用程序负载均衡器
【发布时间】:2020-08-21 22:18:18
【问题描述】:

大家好,所以我将我的 ELB 配置为使用 SSL 证书,它工作得很好,但是,我仍然有一个问题,如果用户在 HTTP 下通过端口 80 访问我的网站,该网站不会将他们重定向到 HTTPS 安全联系。这是 Elastic Beanstalk 配置选项卡中我的 ELB 配置的屏幕截图。感谢您提供任何帮助。

【问题讨论】:

    标签: ssl redirect amazon-elastic-beanstalk amazon-elb


    【解决方案1】:

    事实上,你已经不能再从弹性豆茎的界面中进行操作了 不要从应用程序中执行此操作,这是负载的不良解决方案。 您现在必须转到 EC2 负载均衡器并更改端口 80 的侦听器,如下所述:https://medium.com/@j_cunanan05/how-to-redirect-http-to-https-in-amazon-web-services-aws-elastic-beanstalk-67f309734e81

    【讨论】:

      【解决方案2】:

      您可以通过以下方式设置 Application Load Balancer 侦听器:

      HTTP 80: default action 
      IF 
      Requests otherwise not routed
      THEN 
      Redirect to HTTPS://#{host}:443/#{path}?#{query}
      Status code:HTTP_301
      

      【讨论】:

        【解决方案3】:

        虽然您似乎可以通过在应用程序中进行重定向来使其正常工作,但 可以完全在 ALB 中执行此重定向。文档:https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html

        此功能于 2018 年 7 月发布。https://aws.amazon.com/about-aws/whats-new/2018/07/elastic-load-balancing-announces-support-for-redirects-and-fixed-responses-for-application-load-balancer/

        Elastic Beanstalk 可能尚未推出自己的支持来配置此功能。您或许可以通过 ebextensions 对其进行配置,但目前最好只在您的应用程序中进行配置。

        【讨论】:

          【解决方案4】:

          这根本不是 elb,我只需添加以下代码:

          if (process.env.NODE_ENV === "production" || process.env.NODE_ENV === "awsDevelopmentServer") {
            app.use(function(req, res, next) {
              // Insecure request?
              if (req.get("x-forwarded-proto") == "http") {
                // Redirect to https://
                return res.redirect("https://" + req.get("host") + req.url);
              }```
          

          【讨论】:

          猜你喜欢
          • 2018-02-06
          • 2015-03-18
          • 2017-02-19
          • 2020-10-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-03-26
          • 1970-01-01
          相关资源
          最近更新 更多