0

我有一个 apache,它将任何传入请求重定向到 url-a 到 url-b。apache 配置同时支持 TLSv1.0 和 TLSv1.2。

url-b 后面的主机将只接受 TLSv1.2 来执行 SSL 握手。我的问题是:如果客户端使用 TLSv1.0 向 url-a 发出请求,当被重定向到仅接受 TLSv1.2 的 url-b 时,请求是否会被正确处理?

所以基本上请求将遵循这种方式:

客户端(TLSv1.0)--> apache(使用 TLSv1.0 与客户端执行握手)(将请求重定向到服务器,使用 TLSv1.2 与服务器执行握手)--> 服务器(TLSv1.2)。

我的测试表明它会起作用,但我对 apache 没有深入的了解,无法 100% 确认这一点。

谢谢

4

1 回答 1

1

将此作为答案,因为它比评论更容易。

从我读到的,你有这样的东西:

browser asks https://site1/
browser <- site1 -> negotiate SSL
browser <- Redirect to site2

browser asks https://site2/
browser <- site2 -> negotiate SSL
browser <- response from site2

因此,在这种情况下,浏览器会一个接一个地与两个站点进行协商。重定向基本上是告诉浏览器“我不会回答您的查询,请访问其他站点”。因此,浏览器将直接与两个站点对话。在这种情况下,站点 1 和站点 2 从不协商 SSL。


如果您使用的是代理:

browser asks https://site1/
browser <- site1 -> negotiate SSL

site1 asks https://site2/
site1 <- site2 -> negotiate SSL
site1 <- receives response from site2
browser <- receives response from site1

代理意味着浏览器只与 site1 对话。它甚至不知道 site2 的存在。站点 1 与站点 2 通信,因此在这种情况下,站点 1 和站点 2 必须相互协商证书。

于 2018-08-07T16:21:18.193 回答