我目前在pfSense盒子上使用squid拦截SSL,效果很好。 现在的问题是WhatsApp Web将无法通过此代理工作,因为它不能按照预期的那样保持握手状态,从而导致squid终止此连接。
是否可以从鱿鱼的SSL拦截中排除特定的目标来防止这个问题?
你所要求的是不可能的。 你显然想要实现的东西需要做别的事情。
因为拦截实际上是由pfSense NAT系统完成的。 Squid只是接收截获的TCP连接并执行TLS解密部分的过程。
要绕过拦截,您需要更改pfSense NATconfiguration。 一旦数据包到达Squid就太晚了 – 唯一的select就是代理或终止。 但是,预先检测是否有任何特定的TCP SYN数据包要转换为HTTPS或WhatsApp连接,这是一个问题。 所以绕过拦截通常是不值得的。
所以你实际上必须做的是在SSL-Bump处理期间在Squid中检测这些数据,并通过代理隧道 (不绕过)相关stream量。
如果stream量实际上是TLS但不可解密(使用TLS SNI和/或服务器证书详细信息来决定拼接),Squid-3.5可以通过“ssl_bump splice”操作来实现。 如果这还不够,Squid-4会提供一个http://www.squid-cache.org/Doc/config/on_unsupported_protocol/function,用于在端口443上build立非TLS的隧道stream量。