跳至正文
中文
立即开始

HTTPS 代理

HTTPS 代理是一种正向代理,通常通过 CONNECT 隧道将流量转发到 HTTPS 网站,让目标网站看到代理出口 IP,而不是用户自己的 IP。

文章目录(8 个章节)

HTTPS 代理的工作原理

客户端首先请求代理打开一条通往网站端口(通常为 443)的 TCP 连接:

CONNECT example.com:443 HTTP/1.1
Host: example.com:443

HTTP/1.1 200 Connection Established

代理返回 200 后,客户端通过该连接与 example.com 开始 TLS 握手。代理转发加密字节,网站记录的是代理出口 IP,而不是用户自己的 IP。

除非启用了 TLS 检查,否则代理无法读取隧道内的 URL 路径、请求头或响应正文。

HTTPS 代理与 HTTP 代理的区别

特性 通过 CONNECT 访问 HTTPS 通过代理访问纯 HTTP
目标 URL https://example.com/ http://example.com/
代理方法 CONNECT,随后转发字节 GET、POST 或其他 HTTP 方法
内容是否可见 受网站 TLS 保护,代理无法读取 代理可读取

这些名称并不一定代表不同的产品。HTTP 代理 只要支持 CONNECT,也可能称为 HTTPS 代理。另外,https:// 代理端点会使用 TLS 保护客户端与代理之间的连接,从而保护这段链路上的 CONNECT 请求和代理认证信息。

HTTPS 代理会暴露哪些信息

  • 网站看到的是代理 IP。 通过代理建立连接后,网站不会收到用户的直接公网 IP。
  • 代理可以看到连接元数据。 包括用户 IP、目标主机或 IP、连接时间和流量大小。
  • TLS 检查会改变信息的可见范围。 如果设备信任受管代理的证书颁发机构,该代理就能终止并重新建立 TLS 连接。
  • 客户端特征仍然可见。 网站仍可检查 Cookie、行为和 TLS 指纹。代理不会让自动化程序呈现得像普通浏览器。

如何配置 HTTPS 代理

  1. 确认支持 CONNECT。 代理必须允许连接所需的目标端口。

  2. 检查端点协议。 只有服务支持受 TLS 保护的代理连接时,代理地址才能使用 https://。

  3. 正确添加认证信息。 如果缺少代理认证信息或信息无效,代理通常会返回 407 Proxy Authentication Required。

  4. 测试一个 HTTPS 请求。 如果代理支持受 TLS 保护的端点,可以使用 curl 测试:

    curl --proxy https://proxy.example.com:8443 --proxy-user USER:PASSWORD https://example.com/

隧道连接成功并不意味着网站的访问规则会失效。请遵守网站条款、robots.txt 指令和限速要求。

常见问题

HTTPS 代理会加密我的所有流量吗?

不会。只有已配置使用该代理的应用所发送的流量会经过代理。HTTPS 目标使用 TLS 加密,但纯 HTTP 流量离开代理后仍未加密。

HTTPS 代理能读取我的密码吗?

使用普通 CONNECT 隧道连接 HTTPS 网站时不能。如果客户端信任代理的证书,执行 TLS 检查的代理就能读取密码;此外,客户端与代理之间的连接也必须受到保护,才能安全传输代理认证信息。

HTTPS 代理与 HTTP 代理相同吗?

通常相同。HTTP 代理可以通过 CONNECT 传输 HTTPS 流量。https:// 代理端点还会为客户端与代理之间的连接增加 TLS 保护。

相关术语

查看全部术语