WSS através do Squid não é o mesmo que uma atualização WebSocket simples
Separe os WebSocket cifrados dentro do CONNECT do tratamento de HTTP Upgrade em texto simples num proxy direto.
O Squid vê um pedido HTTP Upgrade ou apenas um túnel que transporta tráfego cifrado? Isso determina se os seus controlos HTTP Upgrade resolvem a falha.
| Caminho habitual de proxy explícito | Com o que o Squid se depara |
|---|---|
wss:// | Normalmente CONNECT, seguido do TLS de destino que transporta o handshake WebSocket |
ws:// | Um pedido HTTP Upgrade em texto simples que o proxy pode processar |
O controlo de atualização do Squid diz respeito aos pedidos que processa. Não revela cabeçalhos HTTP cifrados dentro de um túnel WSS opaco comum. A interceção TLS ou outro tratamento especial do proxy altera a visibilidade e pode introduzir os seus próprios requisitos de compatibilidade.
Para WSS, descubra onde a sequência para: ligação ao proxy, CONNECT aceite, TLS verificado, depois o handshake da aplicação. Uma rejeição antes do TLS é uma falha diferente de um pedido Upgrade em texto simples negado.
Se for necessário alterar a política de atualização, use a diretiva para a versão do Squid instalada e permita especificamente o comportamento exigido. Permitir todos os protocolos de atualização alarga a política para além da aplicação concreta.
Um pedido bem-sucedido de uma página HTTPS estabelece apenas parte do caminho. O tráfego WebSocket de longa duração ainda pode falhar por requisitos da aplicação, duração da ligação ou restrições de intermediários, mesmo para o mesmo nome de anfitrião.