IIS7应用程序请求路由HTTPS

时间:2014-02-03 14:21:35

标签: c# .net iis url-rewrite-module arr

我有一个反向代理,可以将流量路由到我的应用服务器..

我的公共网站上有登录功能,通过HTTPS提供。 SSL证书仅安装在反向代理服务器中。我的应用服务器没有SSL证书。在反向代理服务器中启用了SSL卸载。

到目前为止,这完美无缺,我可以通过HTTPS访问登录页面和成员区域。但是,我注意到我的会话cookie不安全......

我正在使用.NET Membership Provider进行身份验证,这将生成 ASPXAUTH 会话cookie,众所周知。我试图通过以下方式为此cookie启用httponly和secure标志:

  1. 为web.config
  2. 中的表单身份验证变量添加requiressl = true
  3. 使用httponly和requiressl = true添加httpcookie变量。
  4. 当我尝试登录时,第一个设置总是给我502错误。 502 - Web服务器在充当网关或代理服务器时收到无效响应。

    第二个设置给了我httponly标志但没有给出安全标志(我在测试时禁用了第一个设置)。

    如何解决这个......一些问题:

    1. 我是否需要在所有服务器中安装SSL,包括我的应用服务器?
    2. 有没有解决方法?
    3. 请告知。

      P.S。

      我正在使用IIS 7.5(反向代理)

      应用程序请求路由(反向代理)

      IIS UrlRewrite Module(反向代理)

      IIS 8(应用服务器)

1 个答案:

答案 0 :(得分:2)

某些应用程序被编程为检测您是否使用HTTPS,并且由于实际的Web服务器正在处理启用了卸载的HTTP请求,因此它会认为该请求不安全并且通常最终处于重定向循环中。 / p>

您可以通过在每台内容服务器上设置单个通配符证书并禁用ssl卸载来解决此问题。

  

[ARR01 - ssl证书] - [ARR02 - ssl证书]< - 访客将在其浏览器中看到此SSL证书
  | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | - - | - | - | - | - |
  [Content01 - wildcard ssl certificate] - [Content02 - wildcard ssl certificate]< - 此证书保持隐藏状态,因此可以是共享的单个通配符证书。