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

前端之家收集整理的这篇文章主要介绍了asp.net – 通过在弹性beanstalk的负载均衡器中的IIS重写到https重定向到IIS前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当你在弹性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返回永久重定向

猜你在找的asp.Net相关文章