我希望有一个人可以帮助我。 我有这个问题:
squid作为一个ssl透明代理运行,目前它正在接收所有这两个iptables规则的stream量:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 3130
到目前为止没有问题。 一切工作完美…但是当我添加任何简单的ACL来阻止一个SSL网站,我得到这个浏览器的错误:ssl连接错误(ERR_SSL_PROTOCOL_ERROR)也,如果我尝试运行鱿鱼目前在粘贴下面的评论,我从客户端得到证书错误(域名不匹配)。
http_port 3128 intercept https_port 3130 intercept ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/usr/local/squid/ssl_cert/proxy_matrix-test_com.crt key=/usr/local/squid/ssl_cert/squid.key acl broken_sites dstdomain .example.com ssl_bump none localhost ssl_bump none broken_sites #ssl_bump server-first all ssl_bump none sslcrtd_program /usr/local/squid/libexec/ssl_crtd -s /usr/local/squid/var/lib/ssl_db -M 4MB sslcrtd_children 5
(cert.crt是由认可的authentication机构签署的)有什么想法? 谢谢。
通过SSL使用Squid时,您总会遇到证书错误。 原因在于有一个从Squid到目标网站和从Squid到浏览器的单独的SSL连接。 所以,当浏览器提供来自Squid的证书时,即使它可以被签名,域也不匹配。
+-----------+ +-------+ +---------+ | gmail.com |<----Cert1---->| Squid |<----Cert2---->| Browser | +-----------+ +-------+ +---------+
在某些情况下有一个解决方法。 您可以使用dynamicSSL Cert生成为目标域(例如gmail.com)生成证书,并使用您创build的自签名根CA对其进行签名。 值得注意的是,自签名的根CA证书必须在每个通过代理访问互联网的浏览器/客户端上受信任。 它不需要由实际的证书颁发机构签名,实际上它不能。 如果在Windows环境中,可以通过组策略pipe理器将自签名根CA推出。