我刚刚设置门卫在一个树莓派3,并且它包含 Squid 3 作为其代理链的一部分。
它还利用 ssl 碰撞,并且某些使用 SSL 的网站(通常是大型网站,如 Facebook 和 Youtube)不允许使用该证书。当页面本身加载时,它通常不会加载驻留在静态 CDN 服务器上的图像或样式表。
例如,当加载 facebook 时,我在浏览器中收到以下错误:
无法加载资源:该服务器的证书无效。您可能正在连接到冒充“static.xx.fbcdn.net”的服务器,这可能会使您的机密信息面临风险。
在鱿鱼日志中我得到以下内容:
XXXXXXXX.XXX 166 127.0.0.1 NONE/200 0 CONNECT scontent-yyz1-1.xx.fbcdn.net:443 - HIER_DIRECT/31.13.80.12 -
虽然我知道这实际上只是抱怨这是中间人攻击,这基本上就是 ssl 碰撞...我真的只是想过滤流量,并使其能够打开某些网站和某些网站站点在某些时间关闭;但如果您想过滤 tls/ssl 站点,则需要这样做。话虽这么说,但在其他时候,我希望允许人们在我的网络上使用 Facebook,但不是在工作时间。
我还知道我从服务器下载并安装在测试笔记本电脑上的证书可能不是最好使用的东西,我什至认为这可能是问题的根源,因为它未经 CA 认证。
如果我决定使用的证书是由 CA 认证的,这有效吗?我需要在浏览器中安装什么样的证书才能防止其抱怨?如果我最终想用它进行透明代理,过程是否相同?
答案1
GateSentry 会即时生成您正在访问的主机的证书,以便您的浏览器认为它正在访问原始站点。
该证书必须由您的浏览器信任的证书颁发机构签名,否则您将收到诸如您所看到的错误消息。 GateSentry 附带一个您可以安装的默认 CA 证书。
要让您的浏览器信任此 CA 证书,您必须将其添加到浏览器的信任锚列表中。
如何执行此操作取决于浏览器和操作系统,并且必须在使用网络的每台计算机上执行此操作。
我相信GateSentry使用的默认CA证书是ai.com生成的自签名证书。当您将证书添加到信任锚列表时,您基本上是在说您信任该组织。您听说过 ai.com,更不用说信任他们了?当然,这是您的决定,但我会认真考虑用您自己的自签名证书替换该证书 - 毕竟,我确信您比任何人都更信任自己;尤其是你以前从未听说过的人!
更糟糕的是 - 如果您决定在笔记本电脑、平板电脑或智能手机上信任 ai.com 证书,那么将来您可能会使用同样使用 GateSentry 的 WiFi 服务,如果他们使用相同的 ai.com 证书,您将与他们分享您所有的私人信息!
您不能使用由商业 CA 签名的证书,因为您所需的证书必须是 CA 证书,而不是最终实体证书(例如 TLS 证书)。 CA 证书可以签署从属证书,例如 GateSentry 模拟的 TLS 证书。您可以从商业 CA 购买的 SSL/TLS 证书无法签署从属证书,因此在这种情况下没有用处。 CA 一般不会颁发 CA 证书,也绝对不会向个人颁发 CA 证书。