可以在不同服务器上通过SSL在子域之间共享cookie吗?

时间:2015-02-03 08:17:40

标签: security ssl cookies

我们正在评估以下单点登录解决方案的可行性。

方案。 网站域名。 https://www.example.com

  • [使用多服务器通配符证书的SSL]
  • 托管在服务器1上。

其他门户网站。 https://portal.example.com

  • [使用相同证书(多服务器通配符证书)的SSL]]
  • 托管在服务器2上。

解决方案: 目的是在www.example.com和portal.example.com子域之间共享cookie,但是,为此,SSL协议需要满足以下要求:

  • 继续阻止中间人攻击。
  • 服务器1和服务器2以相同的方式加密/解密。这样他们就可以从cookie中获取相同的信息。

问题是:在私钥或SSL协议的持续性方面是否有任何限制,使上述解决方案不可行?

谢谢,

1 个答案:

答案 0 :(得分:5)

是的,您的解决方案将起作用,并将缓解大多数MITM攻击,前提是CA从您购买的证书中获取客户端浏览器。

如果Cookie设置为域example.com,则会在www.example.comportal.example.com之间共享。建议设置安全标志以确保它不能通过普通HTTP传输。我假设www.example.comportal.example.com都有一个服务器端机制来验证cookie值以授权每个请求。

RFC 6265州:

  

Domain属性指定cookie所在的主机   发送。例如,如果Domain属性的值为   " example.com",用户代理将在Cookie中包含cookie   向example.com,www.example.com和。发出HTTP请求时的标头   www.corp.example.com。

旧RFC 2109指定您在域之前需要.,但6265会覆盖此域​​。这意味着,如果您要共享Cookie并使其与非常旧的浏览器兼容,则应使用域.example.com而不是example.com设置Cookie。做前者没有什么可失去的,因为新的浏览器会忽略点。

在您的解决方案中,服务器1和服务器2都将接收并能够解密cookie。请注意,两个服务器都不需要具有相同的证书 - 它们将使用其安装的私钥(或者更准确地说是使用其安装的私钥传输的共享对称密钥)来独立解密SSL会话。

但是,使用*.example.com的通配符证书会更便宜,因为可以在两台服务器上安装相同的证书。