Squid + ssl-bump e as hierarquias tupiniquins

Antes de assinar páginas com seu certificado, quando bump é feito (não aplica-se a splice[1]), o Squid validará o certificado do servidor web. Em caso de falha, retornará uma página de erro ao cliente — a menos que liberemos com sslproxy_cert_error, que é perigoso.


Precisamos instalar as autoridades certificadoras raiz brasileiras na máquina onde o Squid roda.

Fedora/RHEL e derivados[2]:

# wget http://acraiz.icpbrasil.gov.br/credenciadas/RAIZ/ICP-Brasilv2.crt -O /etc/pki/ca-trust/source/anchors/ICP-Brasilv2.pem
# wget http://acraiz.icpbrasil.gov.br/credenciadas/RAIZ/ICP-Brasilv5.crt -O /etc/pki/ca-trust/source/anchors/ICP-Brasilv5.pem
# update-ca-trust
# systemctl reload squid.service

(enquanto escrevo, V2 e V5 estão em uso)

Ao servirem páginas assinadas por certificados intermediários (a maioria), servidores web bem configurados entregam a cadeia necessária, que é usada pelo Squid 4+. Para os raros casos de servidores que não o façam, dá para especificar manualmente com:

sslproxy_foreign_intermediate_certs /caminho/cadeia.pem

Relacionado:
Modos de funcionamento do Squid


[1] Tráfego passa sem modificações pelo proxy. As CAs devem ser instaladas nos clientes.
[2] Features/SharedSystemCertificates.

Comentários