Use um OpenSSL s_client instalado que ofereça suporte a -proxy. Para um endpoint HTTP CONNECT autorizado:

openssl s_client -proxy proxy.example:3128   -connect example.com:443 -servername example.com   -verify_hostname example.com -verify_return_error -showcerts

Substitua o endereço do proxy e use de forma consistente o nome de destino pretendido. Para testar um destino público por meio de um proxy que você pode escolher, selecione um candidato HTTP na lista de proxies HTTP. -connect seleciona o alvo, -servername envia SNI para o host virtual TLS e -verify_hostname verifica a identidade. SNI sozinho não verifica o nome do host. Consulte o manual da versão instalada ao adaptar as opções.

-showcerts mostra o que o servidor enviou, mas não declara que a cadeia é confiável. -verify_return_error faz os erros de verificação encerrarem o handshake; caso contrário, o cliente de diagnóstico pode continuar após os erros. Para um serviço privado, use material de CA aprovado em vez de confiar em um certificado baixado aleatoriamente.

ResultadoEtapa
407Autenticação do proxy antes do TLS do destino.
Destino CONNECT negadoPolítica de destino do proxy.
Certificado recebido e verificação tentadaTroca TLS do destino pelo túnel aceito.

Com OpenSSL 3.x e um proxy HTTP que autentica com Basic, use as opções de conta de proxy do s_client mantendo a verificação do destino.

Um endpoint somente SOCKS não fornece a interface de proxy HTTP usada por este comando. Com interceptação TLS autorizada, o certificado exibido pode ter sido emitido por esse intermediário. Compare seu emissor e a relação de confiança pretendida antes de atribuir a diferença a um site com defeito.

Artigos relacionados