使用代理拦截 https

使用代理拦截 https

我正在尝试将特定的 https 请求重定向到其他地方。我一直在尝试使用适用于 http 的 squid,但它无法看到 https 请求。是否可以这样做,因为请求已经加密,squid 甚至看不到它。

我尝试过使用带和不带 squirm 的 squid,但都没有成功。检查 squid 日志,只记录了 http 请求,没有记录 https,这是否意味着 https 没有通过 squid?

我已经尝试过这个技巧http://www.rahulpahade.com/content/squid-transparent-proxy-over-ssl-https。一旦我启用防火墙设置,所有对 https 的请求都会被阻止。但如果禁用将 443 转发到 squid 服务器而不对 squid 配置进行任何更改,它就会再次正常工作。

请帮忙。谢谢

答案1

是的,您可以执行此操作,但这并不是一件容易的事。

首先,您需要建立一个客户端信任的证书颁发机构。完成此操作后,您可以使用 Squid 的 sslbump 功能执行解密(请参阅http://wiki.squid-cache.org/Features/SslBump)。

虽然您没有解释您想要做什么的背景,但可能值得一提的是,如果您想要调试来自 Windows 计算机的传出 HTTPS 连接,则可以使用 Fiddler Web 调试器以更简单的方式执行此操作(http://www.fiddler2.com/fiddler2/

答案2

由于 HTTPS 的性质,无法透明地代理传出连接。

由于 HTTPS 连接在网络层面是安全的,因此任何拦截它们的尝试都会被检测到,并会中断通信。

如果最终用户直接连接到代理,则可以使用代理 SSL,因为代理将直接设置安全连接;但是,您不能透明地代理建立安全连接,因为代理无法访问与真实服务器相同的证书 - 它无法模仿它。

相关内容