使用支持 s_client 的已安装 OpenSSL -proxy。对于获准使用的 HTTP CONNECT 端点:

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

替换代理地址,并始终使用预期的目标名称。要通过可选代理测试公共目标,从HTTP 代理列表中选择候选项。-connect选择目标,-servername为目标的 TLS 虚拟主机发送 SNI,-verify_hostname检查身份。仅有 SNI 并不等于主机名验证。调整选项时,请查看已安装版本的手册。

-showcerts显示服务器发送的内容,但不表示证书链受到信任。-verify_return_error会让验证错误终止握手;否则诊断客户端可能在错误后继续。对于私有服务,应使用获准的 CA 材料,不要信任随意下载的证书。

结果阶段
407目标 TLS 之前的代理认证。
CONNECT 目标被拒绝代理目标策略。
收到证书并尝试验证通过已接受隧道进行的目标 TLS 交换。

使用 OpenSSL 3.x 和采用 Basic 认证的 HTTP 代理时,在保留目标验证的同时使用s_client 代理账户选项。

仅支持 SOCKS 的端点不提供此命令使用的 HTTP 代理接口。在获准的 TLS 拦截中,显示的证书可能由该中间方签发。将差异归因于网站故障前,请比较其签发者和预期的信任安排。

相关文章