在 IIS 6 上伪造 HTTPS

在 IIS 6 上伪造 HTTPS

我正在寻找一种方法来告诉 IIS 6,即使请求通过 http 发送,也可以将其视为 https。

HTTPS 在请求到达应用服务器之前进行管理。对于 Tomcat,我们使用 RemoteIpValve 和 http 标头 X-Forwarded-Proto 来告知 Tomcat 连接是否安全。

有没有办法在 IIS 中做到这一点? Isapi 过滤器可以解决问题吗?

感谢您的所有提示。

[编辑:] 更准确地说:对于我们的 tomcat 来说,架构如下:

    USER
      |
     LoadBalancer (KeepAlived)
     |  |
     |  '- Apache (SSL)
     |
     HaProxy
     |
     |
     Tomcat

当用户在 tomcat 上发出 https 请求时,请求将通过 apache,在那里对 https 进行解码(Apache 添加标X-Forwarded-Proto: https头)。然后,请求通过 HaProxy(Http LoadBalancer)重定向到 Tomcat。

我希望它更清楚一点。

附言:请原谅我的英语,我练习得不够。

答案1

例如,对于 IIS7,应用程序请求路由 (ARR) + ARR Helper 通过添加 x-headers 来实现这一点,就像您对 Tomcat 所做的那样。

您需要一个 ISAPI 筛选器来将 x-header 重写回 IIS6 框上的原始标头值。Microsoft 没有用于重写标头的 IIS6 解决方案,但您可以看看 BigIP 客户端是否能为您完成此操作,或者您自己编写。

IIS7 已经有本机解决方案,因此如果您需要在开发自己的 ISAPI 过滤器(不是一件容易的事)或升级之间进行选择,这可能是考虑升级您的环境的机会。

相关内容