【问题标题】:ASP.NET MVC App - AWS Load Balancer Redirect Http to HttpsASP.NET MVC 应用程序 - AWS 负载均衡器将 Http 重定向到 Https
【发布时间】:2018-02-06 06:35:32
【问题描述】:

我最近使用 AWS Elastic Beanstalk 创建了一个 Web 应用程序,并设置了一个 EC2 Classic Load Balancer 以将 HTTP url 重定向到 HTTPS。目前,我可以使用 HTTP 或 HTTPS 访问我的站点,但我希望任何请求都能自动将其发送到 HTTPS。我使用 AWS Toolkit 从 Visual Studio 2015 开发和部署了我的 ASP.NET MVC 应用程序(否则,所有网站功能都已在 AWS 上设置)。我对 AWS 非常陌生,在浏览了许多关于此的帖子后,我无法找到一种强制从 HTTP 重定向到 HTTPS 的方法。我查看了这个网站https://oanhnn.github.io/2016-02-29/how-to-force-https-behind-aws-elb.html,但不确定如何实施所讨论的内容。如果有人知道如何执行此操作或知道要查看的良好文档,我将不胜感激。

【问题讨论】:

    标签: asp.net asp.net-mvc amazon-web-services amazon-ec2


    【解决方案1】:

    您需要:

    1. 在您的 Windows 服务器上安装 URL Rewrite
    2. 将以下 <rewrite> 部分添加到您的 Web.config 文件中:

    Web.config


    <configuration>
    
      ...
    
      <system.webServer>
    
        ...
    
        <rewrite>
          <rules>
            <rule name="Redirect to HTTPS" stopProcessing="true">
              <match url="(.*)" />
              <conditions>
                <add input="{HTTP_X_FORWARDED_PROTO}" pattern="^http$" ignoreCase="false" />
              </conditions>
              <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
            </rule>
          </rules>
          <outboundRules>
            <rule name="Add Strict-Transport-Security when HTTPS" enabled="true">
              <match serverVariable="RESPONSE_Strict_Transport_Security" pattern=".*" />
              <conditions>
                <add input="{HTTPS}" pattern="on" ignoreCase="true" />
              </conditions>
              <action type="Rewrite" value="max-age=31536000" />
            </rule>
          </outboundRules>
        </rewrite>
      </system.webServer>
    </configuration>
    

    【讨论】:

    • 谢谢!修复了问题
    猜你喜欢
    • 2020-08-21
    • 2015-03-18
    • 2017-02-19
    • 2020-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-26
    • 1970-01-01
    相关资源
    最近更新 更多