使用非透明代理过滤 HTTPS URL

使用非透明代理过滤 HTTPS URL

我已经设置了 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 的用户重定向到错误页面?

相关内容