我已经设置了 Squid v.3.1 + Squidguard,代理通过 proxy.pac 文件在每个浏览器上配置。现在,如果用户使用 HTTP 访问被阻止的站点(例如http://www.facebook.com)Url 过滤器起作用了,用户被重定向到阻止页面,但如果他转到 https(例如 https://www.facebook.com) 他没有被屏蔽。我必须配置什么才能阻止 HTTPS 网址?
这是我的 squid.conf:
acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access allow all
http_port 3128
url_rewrite_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf
先感谢您。
答案1
我通过以下方式修改 proxy.pac 使 HTTPS 块正常工作:
function FindProxyForURL(url,host)
{
if (shExpMatch(url,"http:*") || shExpMatch(url,"https:*"))
return "PROXY ipProxy:3128";
else
return "DIRECT";
}
现在如果用户访问https://www.facebook.com该网站未加载(并且其他未被阻止的 https 网站通常可以访问),但他没有被重定向到“被阻止的网站”错误页面,只是浏览器给出了一个错误:
- Firefox 和 IE 给出通用的“无法加载页面”错误页面
- Chrome 出现错误 111 (net::ERR_TUNNEL_CONNECTION_FAILED)
有没有办法将来自 HTTPS 被阻止的 URL 的用户重定向到错误页面?