【问题标题】:Do HTTPS connections require HTTPS proxies or can I use HTTP proxies?HTTPS 连接是否需要 HTTPS 代理,或者我可以使用 HTTP 代理吗?
【发布时间】:2016-09-15 07:42:35
【问题描述】:

问题是关于 HTTP 与 HTTPS。

如果我想匿名加载强制使用 HTTPS 的网站,例如 Google.com,我是否需要 HTTPS 代理,还是可以不用 HTTP 代理?

【问题讨论】:

  • 代理能否通过 HTTP 向客户端提供 HTTPS 站点的内容?
  • @DaSourcerer 匿名,是的。如果您愿意,可以编辑问题。
  • 我宁愿不这样做:改变其他人的写作可能会改变意思让我有点不舒服。
  • @DaSourcerer 哈哈好吧。如果我的问题有误解,请随时纠正我。

标签: http https proxy http-proxy


【解决方案1】:

如果您的代理是SOCKS,它不会关心通过它连接的套接字类型。它有自己的握手,它不关心握手后会发生什么。在SOCKS 握手之后是否启动 SSL 握手 (HTTPS) 不是SOCKS 代理问题,它只是通过。

另一方面,一些 HTTP 代理希望 HTTP 标头引导它们,这样的 HTTP 代理将不允许 HTTPS,因为它需要读取标头。

另一方面,支持HTTP CONNECT 的HTTP 代理也可以设置任意数据的传输。因此,这样的代理可以设置任何类型的套接字,可以进行 SSL 握手,然后可以用于 HTTPS 传输。

【讨论】:

  • 所以答案是,如果我从网络上抓取一个 HTTP 代理列表,或者购买一个列表,只有一些会支持 HTTPS?
  • 我认为今天大多数 HTTP 代理(尤其是那些在网络上宣传的)支持HTTP CONNECT,因此支持HTTPS。最常见的部署之一是使用squid,默认情况下允许HTTP CONNECT。我看到的检查标头或禁用 CONNECT 的 HTTP 代理主要是公司内部代理(监视员工是不好的,好的),以及与 perl 之类的东西一起被黑客入侵的代理(令人惊讶的是,这仍然很常见)。
【解决方案2】:

HTTP 代理服务器支持 CONNECT 动词,它支持 HTTP 代理中的 HTTPS 连接。您不需要特殊的 HTTPS 代理服务器或任何其他设置。

CONNECT 动词允许您创建到任何给定IP:Port 地址的二进制套接字隧道。因此,任何 HTTP 客户端(所有浏览器)都将打开安全隧道并通过代理服务器进行安全通信。但是,除非他们通过向您发送自签名证书来实施中间人攻击,否则没有人无法控制或看到任何通过隧道的东西。

如今,大多数防火墙都会自动实现部署在工作网络中的中间人自签名证书,因此您可能需要进行更多挖掘来确定它是否真的安全。所以它可能不是那么匿名的。

【讨论】:

    【解决方案3】:

    如果您尝试匿名访问服务,您将无法通过运行自己的代理来获得此功能。从原始问题中不清楚“代理”是什么意思,例如本地服务或远程服务。您不会通过网络上的代理上网来获得匿名,除非它类似于通过 TOR 网络中继的 TOR 代理。

    关于代理是否支持 HTTPS,这里已经介绍过了,找到不支持 CONNECT 的代理是不常见的。但是,如果您使用的是远程匿名服务,我怀疑他们会做 MitM,因为您需要将签名证书安装到您受信任的根存储中,所以他们不能偷偷摸摸地这样做。

    【讨论】:

    • 代理:远程 IPv4 地址和端口组合。
    猜你喜欢
    • 2012-04-29
    • 1970-01-01
    • 2014-08-22
    • 1970-01-01
    • 2010-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多