[proxy_tls]
client = yes
accept = 127.0.0.1:3129
connect = proxy.example:8443
verifyChain = yes
CAfile = /path/to/trusted-ca-bundle.pem
checkHost = proxy.example
sni = proxy.example

Use o proxy remoto desejado e um pacote de certificados de CAs confiáveis. verifyChain verifica a cadeia de emissores; checkHost verifica o nome. sni envia o nome, mas não o verifica.

Aponte o cliente de proxy HTTP para o endpoint local:

curl --proxy http://127.0.0.1:3129 https://www.example.org/

A aplicação continua fazendo CONNECT e o login que o proxy exigir. O stunnel acrescenta o trecho TLS, não a autenticação HTTP. O listener remoto precisa realmente oferecer proxy HTTP sobre TLS.

Em sites HTTPS, o TLS do destino continua dentro dessa rota com sua própria verificação normal. Os dois certificados identificam pares diferentes.

Artigos relacionados