Squid ssl_bump server_first

我正在尝试ssl_bump server_first Squid指令,但我不明白它是如何工作的。 据我所知,ssl_bump指令有三种工作模式:

  • 无:HTTPSstream量不被拦截,客户端直接与远程服务器连接,鱿鱼只转发stream量。
  • 客户端:客户端通过SSL连接到Squid(所以在第一次连接时,用户必须接受Squid的SSL证书),Squid连接到服务器,自动接受SSL证书。 (还是有select只接受一些证书,拒绝其他人?)
  • 服务器优先:Squid连接到服务器,它接受SSL证书,然后…? 鱿鱼文件说:

首先build立与服务器的安全连接,然后使用模拟的服务器证书与客户端build立安全连接。

“模仿服务器证书”是什么意思? 鱿鱼产生假证书复制(?)从远程服务器接收到的? 我尝试设置ssl_bump server_first Squid,但是每次连接到HTTPS站点时,浏览器都会警告证书是不匹配的,如果检查证书,我会看到在Squid安装期间创build的证书始终是相同的。 ..我没有看到任何与“客户第一”行为的差异,然后…

我知道SSL截取不是一个安全的程序,但我正在推出这个function,因为我可能会被迫使用它…

先谢谢你。

服务器优先和客户优先之间的区别在于用户最终看到的是什么错误信息(或者看不到)

客户端优先SSL碰撞,有三个问题:

  1. 提供的SSL证书与目的地不匹配; 例如,客户端看到SSL证书发给了proxy.yourdomain.com,但用户正试图访问www.securewebsite.com。 他们的浏览器会警告他们。 (坏)
  2. SSL证书来自不受信任的证书颁发机构。 他们的浏览器也会警告他们。 (坏)
  3. 如果服务器SSL证书有问题,那么没有办法让客户知道。 当Squid发现有一个错误(也许它是过期的,不可靠的,对于错误的网站等),客户端已经有一个“好”的SSL证书,并认为它即将收到真正的stream量。 他们的浏览器不能警告他们。 (也不好)

服务器优先SSL凸点消除了第一个和第三个问题。 第二个仍然存在。 这里有一个体面的资源使用服务器优先ssl碰撞的推理 。 当这个function还在开发的时候显然是写的,所以不要让将来时态混淆你。

由于您自己生成了证书,任何人都可以自己生成证书,只是拥有证书并不意味着沟通是安全的。 证书必须来自您信任的发行人。 浏览器默认出现一个受信任的证书颁发机构列表。 这些CA担保他们出售的证书,这就是您的计算机知道如何信任证书。

这个问题的解决scheme是,你必须告诉你的计算机信任你正在使用ssl-bumping的证书。 这个过程对于不同的操作系统是不同的。 对于Windows客户端,您可以通过GPO推送某些内容,对于移动设备,您可以使用MDM将其推送出去等。

仅用于testing(在Windows中),您可以右键单击证书并select安装。 穿过向导。 而不是让Windowsselect放置证书的位置,浏览并select受信任的根证书颁发机构。 一旦你这样做了,你的计算机将会信任你的squid ssl-bump服务器生成的任何证书。