我在 Ubuntu Server 16.04.5 LTS 上安装了 Squid 3.5.12
我用它来屏蔽除 whitelist.txt 中列出的特定域名之外的所有内容
除了向用户显示的被阻止的页面外,一切工作正常:
和HTTP它与 配合得很好ERR_ACCESS_DENIED
。它显示该网站已被阻止。我进行了编辑/usr/share/squid/errors/fr/ERR_ACCESS_DENIED
以显示个性化消息,它按预期工作。
这里的问题在于 HTTPS,它给出了ERR_TUNNEL_CONNECTION_FAILED
。
我想让它显示与HTTP做。
有办法吗?谢谢。
答案1
被屏蔽的页面是不是浏览器中显示尝试通过代理建立 CONNECT 隧道,因为浏览器明确期望代理仅响应“200 连接已建立”。所有其他响应(例如,网站被阻止时使用的 403)均不显示。
可以允许连接通过,告诉 Squid 强制对其进行 sslbump,然后对通过该已建立隧道传递的任何请求显示阻止的页面 - 但您需要一些自定义 ICAP/URL 重写器来执行此操作。例如,以下是在 Squid 的 Web Safety ICAP 中执行此操作的方式 -https://docs.diladele.com/faq/squid/cannot_connect_to_site_using_https.html