我想让 Chrome 对所有发往代理(由我控制)的传出请求使用 SSL。代理可以接受普通的 HTTPS 连接(作为透明代理),并且还支持非加密的 HTTP 连接,客户端可以在该连接内执行 HTTP CONNECT,然后协商 SSL。
但是 Chrome 仅使用 HTTP CONNECT 进行 httpsurl。当我打开 http url 时,chrome 会向代理发送 HTTP GET,而不是 HTTP CONNECT。即使我使用 PAC 脚本为 http 和 https url 返回“HTTPS host:port”,也会发生这种情况。而且我无法让 chrome 在连接到代理时使用普通 HTTPS。
我的目标是保护浏览器和代理之间的流量免受被动网络侦听器的攻击,包括隐藏在 HTTP 标头中传递的任何代理身份验证令牌。我该如何实现这一点?
答案1
我的目标是保护浏览器和代理之间的流量免受被动网络侦听器的攻击,包括隐藏在 HTTP 标头中传递的任何代理身份验证令牌。我该如何实现这一点?
CONNECT 不是用于代理普通 HTTP 连接的协议,而只是用于创建到其他主机的隧道。HTTPS 连接随后在此隧道内创建 TLS 连接,从而提供所需的保护。
这意味着,即使您可以说服 Chrome 使用 CONNECT 为纯 HTTP 创建隧道,它也不会提供您期望的保护,因为它会将此隧道与纯 HTTP 一起使用。加密是 HTTPS 的属性,而不是 CONNECT 隧道的属性,并且不会对以这种方式建立 HTTP 隧道进行加密。因此,攻击者仍然能够嗅探您想要保护的所有数据。
您需要使用 VPN 来保护 Chrome 和代理之间的连接。但这并不能保护代理和服务器之间的连接。只有服务器本身支持 HTTPS 时才能实现此保护。
答案2
似乎没有办法让 Chrome 做到这一点。
我确实需要注意的是,用于控制代理设置似乎允许这种情况,但无法通过手动代理设置或 PAC 脚本实现等效配置。
答案3
我以前没有尝试过,但你可以尝试一下--proxy-server
旗帜。