通过本地 stunnel 桥接时验证 HTTPS 代理的身份
给应用提供回环地址上的明文 HTTP 入口,由 stunnel 验证通往实际代理的 TLS 连接。
[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 连接会继续在这条路径内部运行,并保留自身正常的验证。两张证书验证的是不同的对端。