[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

换成要连接的远程代理和可信 CA 证书包。verifyChain 检查其签发者证书链;checkHost 检查名称。sni 只发送名称,并不验证它。

让 HTTP 代理客户端连接本地入口:

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

应用仍负责执行 CONNECT,以及所需的代理登录。stunnel 增加的是 TLS 这一段连接,不是 HTTP 认证。远程监听端口必须确实支持通过 TLS 提供 HTTP 代理服务。

访问 HTTPS 网站时,目标站点的 TLS 连接会继续在这条路径内部运行,并保留自身正常的验证。两张证书验证的是不同的对端。

相关文章