Apache 从 TLSv1.0 重定向到 TLSv1.2

Apache redirect from TLSv1.0 to TLSv1.2

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

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

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

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

我的测试表明它可以工作,但我对 apache 没有深入的了解,无法 100% 证实这一点。

谢谢

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

根据我的阅读,你有这样的内容:

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

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

因此,在这种情况下,浏览器会依次与两个站点进行协商。重定向基本上是告诉浏览器 "I will not answer your query, go see that other site for that"。因此,浏览器将直接与这两个站点对话。在这种情况下,站点 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 存在。 Site1 与 site2 通信,因此在这种情况下,site1 和 site2 必须相互协商证书。