我有一个透明代理。 我的conf是这样的,squid推荐的这里:
acl allowed_sites dstdomain "/etc/squid/allowed_sites"
acl step1 at_step SslBump1
ssl_bump peek step1
ssl_bump splice allowed_sites
ssl_bump stare all
我的 allowed_sites 为:
.youtube.com
但是当我浏览 www.youtube.com 时,发生了碰撞,该证书是在我的鱿鱼服务器上创建的证书,这是我不想要的,因为该网站包含在我的“allowed_sites”列表中,然后应该是拼接,而不是凸点。
我也尝试过,但没有运气:
acl allowed_sites dstdomain "/etc/squid/allowed_sites"
ssl_bump splice allowed_sites
ssl_bump peek all
ssl_bump bump all
我的错误在哪里?
好吧,我必须将我的 acl 更改为:
acl allowed_sites dstdomain "/etc/squid/allowed_sites"
至:
acl allowed_sites ssl::server_name "/etc/squid/allowed_sites"
由于这个 acl 指令 文档,我意识到了我的错误 我使用
debug_options ALL,3
在我的squid.conf中设置要调试的日志,然后我意识到当我打开youtube并使用tail -f cache.log | grep 'allowed_sites '
跟踪我的缓存文件时没有匹配(allowed_sites是我的acl名称)。
所以在挖掘之后我意识到了根本原因。
在cache.log中,我意识到我必须使用一些不检查“dst”但收到的证书的SNI的东西:
Handshake.cc(542) parseSniExtension: host_name=www.youtube.com
acl 中关于 SNI 的唯一参考是名为
ssl::server_name
的 acl_type