加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 通过在弹性beanstalk的负载均衡器中的IIS重写到https

发布时间:2020-12-16 00:20:50 所属栏目:asp.Net 来源:网络整理
导读:当你在弹性beanstalk负载均衡器后面时,如何使用IIS的url重写模块强制用户使用ssl? 解决方法 由于一些原因,这比听起来更困难。一,负载均衡器负责ssl,因此从负载均衡器传递的请求永远不会使用ssl。如果使用传统的重写规则,您将获得无限循环的重定向。另
当你在弹性beanstalk负载均衡器后面时,如何使用IIS的url重写模块强制用户使用ssl?

解决方法

由于一些原因,这比听起来更困难。一,负载均衡器负责ssl,因此从负载均衡器传递的请求永远不会使用ssl。如果使用传统的重写规则,您将获得无限循环的重定向。另一个需要解决的问题是,如果AWS健康检查收到重定向响应,它将失败。

>解决方案的第一步是创建healthcheck.html页面并将其设置在根目录中。内容是什么并不重要。
>设置负载均衡器以使用healthcheck.html文件进行运行状况检查。
>在web.config的< system.webServer>< rewrite>< rules>中添加下面的重写规则。部分:

<rule name="Force Https" stopProcessing="true">
   <match url="healthcheck.html" negate="true" />
   <conditions>
       <add input="{HTTP_X_FORWARDED_PROTO}" pattern="https" negate="true" />
   </conditions>
   <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" />
</rule>

请注意,规则匹配除了我们的healthcheck文件之外的任何内容。这可以确保负载均衡器的运行状况检查成功,并且不会错误地从负载中丢弃我们的服务器。

负载均衡器在标头中传递X-Forwarded-Proto值,让我们知道请求是否通过https。如果该值不是https,则触发我们的规则,并使用https返回永久重定向。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读