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

wac*_*any 3 security cookies ssl

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

场景.网站域名.https://www.example.com

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

其他门户.https://portal.example.com

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

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

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

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

谢谢,

Sil*_*Fox 5

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

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

RFC 6265规定:

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

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

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

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

  • @MarkRoper:是的,如果浏览器信任两个证书,则会发送cookie.请记住,所有Secure标志都会阻止cookie通过纯HTTP连接发送.如果浏览器可以进行基础SSL/TLS连接,并且cookie域和路径匹配,则浏览器将发送带有请求的cookie. (2认同)