3

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

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

到目前为止效果很好,我可以通过 HTTPS 访问登录页面和会员区。但是,我注意到我的会话 cookie 不安全......

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

  1. 在 web.config 中为表单身份验证变量添加 requiressl=true
  2. 使用 httponly 和 requiressl=true 添加 httpcookie 变量。

当我尝试登录时,第一个设置总是给我 502 错误。 502 - Web 服务器在充当网关或代理服务器时收到无效响应。

第二个设置给了我 httponly 标志而不是安全标志(我在测试时禁用了第一个设置)。

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

  1. 我是否需要在所有服务器中安装 SSL,包括我的应用服务器?
  2. 有什么解决方法吗?

请指教。

附言

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

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

IIS UrlRewrite 模块(反向代理)

IIS 8(应用服务器)

4

1 回答 1

3

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

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

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

于 2014-02-03T16:58:10.527 回答