CURLOPT_CONNECT_TO altera o host e a porta aos quais o libcurl se conecta para um destino correspondente. Não faz o endpoint alternativo falar HTTP CONNECT nem SOCKS.

O nome de host original ainda fornece a identidade do protocolo de aplicação e do TLS. Isso é útil quando se alcança deliberadamente outra instância de servidor do mesmo serviço. Já um ouvinte de proxy arbitrário espera o seu próprio handshake de proxy, não os bytes brutos da aplicação.

Combinar o mapeamento com um proxy HTTP

Configure o proxy HTTP separadamente. Uma rota HTTP sem credenciais para um serviço público pode usar um endpoint da lista de proxies HTTP quando esse intermediário é permitido; nenhuma conta de proxy existente deve ser enviada ao candidato. O libcurl documenta que um mapeamento connect-to diferente pode então mudar a solicitação para o modo túnel: o proxy abre a conexão com o destino mapeado. O mapeamento escolhe o que é alcançado através do proxy; ele não substituiu a configuração do proxy.

Mantenha três valores distintos: o nome do serviço pretendido, o endpoint de conexão alternativo e o endpoint do proxy. Escolha cada opção pela sua função real e mantenha a verificação normal do nome TLS para o serviço.

Se a própria porta do proxy recusar conexões, outra opção apontando para esse mesmo ouvinte ausente não consegue corrigir o primeiro salto. Resolva essa falha de ouvinte ou de caminho antes de alterar o mapeamento de destino.

Artigos relacionados