我有一个基本的 ASP.NET 应用程序,位于 F5 负载均衡器后面。
传入的 SSL 请求(通过 HTTPS)在负载均衡器处终止,并且负载均衡器和我的应用程序服务器之间的所有内部通信都是不安全的(通过 HTTP)。
当不安全的请求进来时,我的应用程序能够Response.Redirect("https://...")
毫无问题地重定向安全 URL。但是,另一个方向似乎是不可能的 - 我无法从HTTPS到HTTP从我的应用程序中使用Response.Redirect()
。客户端的 URL 仍为 HTTPS,不会发生变化。F5 是否会阻止重定向到达客户端?
是否需要任何特殊配置才能实现这一点?
答案1
是的,F5 可能正在拦截并将重定向重写为 HTTPS。
找到与您的虚拟服务器关联的 HTTP 配置文件。“重写重定向”设置为多少?由于您是应用程序的开发人员,因此您可能希望设置为 None。(请记住为您的应用程序创建一个新的 HTTP 配置文件,而不是编辑默认配置文件。)
此选项旨在处理不真正支持 SSL Offload 的应用程序的重定向。
顺便问一下,你为什么要重定向回 HTTP?如果你的 BIG-IP 是硬件(不是虚拟版),那么它可能处理 500-2000 SSL TPS,具体取决于许可模块。你的流量负载是多少?我猜你不太可能建立超过 500新的每秒 SSL 连接数。将所有内容保持在 HTTPS 上可能更容易、更安全。
答案2
不确定这里是否存在 F5 问题,但您可能需要研究使用 IIS Rewrite 模块而不是标准 Response... 对象。它具有更多选项和功能,甚至可以处理您遇到的问题。