proxy - 通过代理服务器的 HTTPS 连接

标签 proxy https

是否可以通过代理服务器建立 HTTPS 连接?如果是,什么样的代理服务器允许这样做?

How to use Socks 5 proxy with Apache HTTP Client 4? 重复

最佳答案

TLS/SSL(HTTPS 中的 S)保证您和您正在联系的服务器之间没有窃听者,即没有代理。通常,您使用 CONNECT通过代理打开 TCP 连接。在这种情况下,代理将无法缓存、读取或修改任何请求/响应,因此毫无用处。

如果您希望代理能够读取信息,可以采取以下方法:

  1. 客户端启动 HTTPS session
  2. 代理透明地拦截连接并 返回临时生成的(可能 弱)证书 Ka, 由证书颁发机构签名 是无条件信任的 客户。
  3. 代理启动到目标的 HTTPS session
  4. 代理验证 SSL 的完整性 证书;如果出现以下情况,则显示错误 证书无效。
  5. 代理传输内容并解密 并用它重新加密 Ka
  6. 客户端显示内容

一个例子是 Squid 的 SSL bump 。同样,打嗝can be configured去做这个。这也已经used in a less-benign context by an Egyptian ISP .

请注意,现代网站和浏览器可以使用 HPKPbuilt-in certificate pins这击败了这种方法。

关于proxy - 通过代理服务器的 HTTPS 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/516323/

相关文章:

Java System.setProperty 代理

javascript - 有没有办法用yql获取页面的整个源代码?

http - 为什么SSL代理和HTTP代理通信之间的管道比TCP连接简单?

azure - 在 Azure VM 上安装后 IIS 自动删除 SSL 证书

java - 条纹 RedirectResolution 重定向到 https url

ssl - RHEL 导入自签名证书

http - 使用 curl --resolve 和 http 代理

通过 HTTP 代理进行 iOS XMPP 聊天

java - 使用vertx HttpClient连接到https url时vertx ssl握手失败

ssl - curl :(35)错误:140770FC:SSL例程:SSL23_GET_SERVER_HELLO:未知协议(protocol)