O que o CURLOPT_CONNECT_TO muda ao usar um proxy
Use o mapeamento connect-to do libcurl para endpoints de rede alternativos em vez de assumir que ele implementa HTTP ou SOCKS no novo endereço.
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.