我正在探索 Squid 代理 2.7 的一些用途,并且我已经看到了很多 URL 重写的示例,这些示例采用如下 URL:http://somesitename.com,然后重写器可以将 URL 更改为:https://somesitename.com
这些例子非常有效。
不过,我想知道是否可以使用 squid url 重写器执行反向操作。也就是说,从 https://somesitename.com 转到 http://somesitename.com?
简单地尝试编辑处理重写的脚本文件似乎没有效果。所以我想知道是否需要先配置 squid 来执行某些操作,以及是否可以执行我要求的操作。
我已手动设置浏览器,让 squid 作为所有请求的代理,并且我可以看到 https 请求出现在我的 squid access.log 文件中(通过 CONNECT 方法)。
答案1
从 http:// 移至 https:// 相对简单:squid 服务器接受 TCP 连接,然后发送 HTTP 响应,告知客户端内容已移至新 URL。然后,客户端在新 URL 上重试请求。
从 https:// 移至 http:// 更难:您必须建立 TCP 连接,然后建立 HTTPS 连接 - 这将要求您提供客户端信任的证书作为其尝试连接的站点的证书。只有完成所有这些操作后,您才能发送响应,告知客户端需要尝试 http:// URL。
一般来说,您的 Squid 服务器永远不会看到客户端请求的 URL - 它只会看到连接到特定 IP:Port 的请求。SSL 要求 Web 服务器和客户端之间的连接全程加密 - 因此 Squid 所能做的就是代理 TCP 连接。客户端所需的确切主机名和路径的详细信息直到 HTTPS 连接建立后才会传达 - 然后它们通过加密连接进行传达,因此代理服务器看不到它们。