Página de erro personalizada (deny_info) para HTTPS

1

Eu tenho as seguintes ACLs aqui no meu squid.conf com um arquivo de "página de erro" personalizado chamado ERR_TJS, localizado em "/ 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

Especialmente para o arquivo ACL "/etc/squid/domains.acl", tenho os seguintes domínios:

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

O problema é que, quando uma solicitação HTTPS é executada no Squid, em vez de fornecer a página de erro personalizada para o link ", por exemplo , está mostrando uma página de erro genérica enviada pelo navegador, como esta do Mozilla Firefox:

The proxy server is refusing connections

Firefox is configured to use a proxy server that is refusing connections.

Check the proxy settings to make sure that they are correct. Contact your network administrator to make sure the proxy server is working.

Eu encontrei esta informação na documentação do Squid:

Custom error pages not displayed for HTTPS

HTTPS uses HTTP CONNECT messages to relay through a proxy. Due to browser behaviour handling these CONNECT messages (described in https://bugzilla.mozilla.org/show_bug.cgi?id=479880) any custom error page produced by the proxy is ignored and a generic browser page displayed instead.

Usually this browser page mentions connection faulure or other such irrelevant details.

In fact any response other than 200 OK is completely dropped by the browser and the same browser template page displayed. This can lead to some very weird authentication problems when using HTTPS through an authenticated proxy as well for authentication schemes where the 407 message body has relevance.

Ouvi dizer que com o Squid, você pode interceptar alguns "estados" de conexões HTTP / HTTPS, como manipular essas mensagens CONNECT.

Minhas perguntas são: existe alguma maneira de aplicar um deny_info personalizado como este que eu tenho para solicitações HTTPS, talvez manipular essas mensagens CONNECT ou por meio de qualquer outra método? E como posso conseguir isso (com algum exemplo, por favor)?

    
por ivanleoncz 16.02.2017 / 00:33

1 resposta

1

Quando o navegador está configurado para usar o proxy para HTTPS, ele primeiro tenta estabelecer o túnel CONNECT através do proxy para o site remoto. Qualquer resposta HTTP do proxy que não seja "Preparado para Túnel 200" será ignorada e resultará no erro "Conexão de Proxy recusando". Isso pode ser corrigido primeiro descriptografando a conexão e, em seguida, negando o acesso a ela conforme você configurou. Consulte o artigo link que descreve isso com mais detalhes.

    
por 16.02.2017 / 21:04

Tags