使用squid捕获https-如何做非透明代理?

使用squid捕获https-如何做非透明代理?

问题的根源:我需要阻止访问https://somewebsite.com/folder/index.php;但允许访问网站的其余部分。我认为实现此目的的最佳方法是通过像 squid 这样的代理。

我怎样才能实现我的目标?请记住,我在 Windows 7 机器上运行 squid 2.7,并且所有客户端也是我可以完全访问的 Windows 机器。

这是我第一次接触鱿鱼,因此如果能得到任何帮助我都会很感激。

答案1

“请记住,我在 Windows 7 机器上运行 squid 2.7,并且所有客户端也都是我可以完全访问的 Windows 机器。”

是的你可以,

步骤如下:=> 在客户端上安装您拥有的证书颁发机构(对于 Internet Explorer,您只需要在 Windows 的系统级别安装它,对于 Firefox 和 Chrome,您必须在每个浏览器中安装它)=> 此时您已经可以使用安全漏洞squid 中的功能可以完成您想要的操作。

或者,您也可以使用带有 mod_proxy 的 apache 服务器,在我看来,它更容易配置,可以做您想做的事情。

关键是能够为目标域生成有效的证书。因此,要么您拥有该域,并且您可以生成完全有效的证书(通过 rapidssl 或其他方式)并将其安装在您想要的位置,要么如果您无法为该域获取“标准”证书,您需要在客户端软件中安装自己的颁发机构,并且您只需使用自己的 CA 生成证书即可。

然后,您只需将流量导向使用您的证书启用了 ssl 的服务器 - apache、squid 等等 - 您可以将流量视为纯 http。

更新:squid 2.7 不支持 SslBump。如果您必须坚持使用 squid 2.7,则必须将 https_port 配置为加速器,并将客户端配置为使用不同的端口与要过滤的 https 站点建立 ssl 连接。例如,更改其 dns 设置并设置代理配置,告诉他们不要对此站点使用代理。

答案2

抱歉,但您无法使用 squid 或任何其他传统代理来做到这一点。您要求的是对客户端执行中间人攻击。

当浏览器配置为使用 Squid 作为代理时,对于 SSL 连接,您所看到的只是浏览器正在向特定域/IP 发出 HTTP CONNECT 请求。您将无法看到所请求的 URL 或任何有效负载。

相关内容