Isso é possível e requer três alterações de configuração:
- Configure o SSL Bump para executar a descriptografia man-in-the-middle, a fim de tornar o conteúdo disponível para armazenamento em cache
- Use o parâmetro refresh_pattern do Squid para garantir que o Squid armazene (e armazene) os objetos que você deseja armazenar
- Ajuste o parâmetro maximum_object_size para que seja pelo menos tão grande quanto o arquivo máximo que você planeja fazer o download .
Você deve estar ciente de que depois de configurar o bump SSL, o Squid criará & Emita um certificado auto-assinado para cada domínio que está configurado para colidir. Seu cliente deve aceitar este certificado para que a transferência ocorra. O cURL pode fazer isso com o parâmetro --cacert (permitindo que ele aceite CAs cuja chave pública apareça na lista) ou o parâmetro -k (desabilita a verificação SSL completamente).
Além disso, há uma diferença sutil (mas importante) na maneira como os dois comandos cURL que você mencionou acima funcionam. O primeiro fará com que o cURL abra uma conexão como se estivesse falando com um proxy, ou seja, abra a porta, emita uma instrução "CONNECT", espere que o handshake SSL ocorra e comece a falar em HTTP. A segunda chamada fará com que o cURL abra uma conexão e tente o handshake SSL imediatamente. Nesse caso, o host (executando o Squid) deve descobrir qual host se conectar, geralmente da parte SNI do handshake. O Squid pode fazer isso, mas você precisa configurá-lo com a declaração link . Eu recomendaria fazê-lo através do primeiro método se você puder, já que requer menos configuração no lado do Squid, e deixa claro no lado do cliente que um proxy está envolvido.