我有一个将所有传入请求重定向到url-a到url-b的apache。 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%确认这一点。
谢谢
答案 0 :(得分: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
因此,在这种情况下,浏览器与两个站点进行协商,一个接一个地进行。重定向基本上是告诉浏览器“我不会回答您的查询,请转到其他网站查看该信息”。因此,浏览器将直接与这两个站点对话。在这种情况下,Site1和Site2永远不会协商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必须彼此协商证书。