自定义错误页面(deny_info)用于HTTPS

在我的squid.conf文件中有一个名为ERR_TJS的自定义“错误页面”文件,位于“/ usr / share / squid / errors / English”:

acl tjs_sites url_regex "/etc/squid/sites_regex.acl" acl tjs_domains dstdomain "/etc/squid/domains.acl" http_access deny tjs_sites http_access deny tjs_domains deny_info ERR_TJS tjs_sites deny_info ERR_TJS tjs_domains 

特别是对于ACL文件“/etc/squid/domains.acl”,我有以下域:

 flyordie.com www.flyordie.com king.com www.king.com miniclip.com www.miniclip.com kongregate.com www.kongregate.com clashroyale.com www.clashroyale.com facebook.com www.facebook.com instagram.com www.instagram.com snapchat.com www.snapchat.com 

问题是,当一个HTTPS请求执行到Squid,而不是给“ https://www.facebook.com ”的自定义错误页面,例如,显示一个通用的错误页面浏览器发送,就像这个来自Mozilla Firefox:

代理服务器拒绝连接

Firefox被configuration为使用拒绝连接的代理服务器。

检查代理设置,确保它们是正确的。 联系您的networkingpipe理员,确保代理服务器正在工作。

我在Squid文档中find了这个信息:

自定义错误页面不显示HTTPS

HTTPS使用HTTP CONNECT消息通过代理进行中继。 由于浏览器行为处理这些CONNECT消息(在https://bugzilla.mozilla.org/show_bug.cgi?id=479880中描述),代理生成的任何自定义错误页面将被忽略,而是显示一个通用浏览器页面。

通常这个浏览器页面提到连接faulure或其他这样不相关的细节。

事实上,200 OK以外的任何响应都会被浏览器完全丢弃,并显示相同的浏览器模板页面。 当通过经过validation的代理使用HTTPS时,这可能会导致一些非常奇怪的身份validation问题,以及407消息正文具有相关性的身份validationscheme。

我听说用squid,你可以拦截HTTP / HTTPS连接的一些“状态”,比如处理这些CONNECT消息。

我的问题是:是否有任何方式来应​​用自定义deny_info就像这个我有HTTPS请求,也许操纵这些CONNECT消息,或通过任何其他方法? 我怎么能做到这一点(请举一些例子)?

当浏览器configuration为使用HTTPS代理时,它首先尝试通过代理build立到远程站点的CONNECT隧道。 来自“200 Tunnel Ready”以外的代理的任何HTTP响应将被忽略,并导致“Proxy拒绝连接”错误。 这可以通过首先解密连接然后拒绝configuration访问来解决。 请参阅https://docs.diladele.com/faq/squid/cannot_connect_to_site_using_https.html更详细地描述这一点的文章。