HTTPS 解密(中间人攻击,MitM)

Chute 可以通过 MitM 解密 HTTPS 流量。更多信息请参阅 Wikipedia 文章

证书生成器可以帮助你生成一个新的 CA 证书用于调试,并使该证书被系统信任。此功能在 Chute Mac 和 Chute iOS 的 Chute Editor 中可用。该证书在本地生成,仅保存在你的配置文件中和系统钥匙串中。新证书的密钥使用 OpenSSL 随机生成。

你也可以使用已有的 CA 证书。将证书导出为 PKCS#12 格式(.p12)并设置密码。请注意,由于系统限制,密码不能为空。使用 "base64" 命令编码为 base64 字符串,并将以下设置追加到你的配置文件中。

[MITM]
enable = true
ca-p12 = MIIJtQ.........
ca-passphrase = password
hostname = *google.com

Chute 仅解密此处声明的主机的流量。

支持通配符 和 ?。请注意,? 只有在规则中同时包含 `时才作为通配符使用;只包含?` 的规则会按字面值比较。

  • 使用前缀 - 来排除主机名。
  • 默认情况下,仅发往 443 端口的请求会被解密。
    • 使用后缀 :port 来允许其他端口。
    • 使用后缀 :0 来允许所有端口。

示例:

  • -*.apple.com:排除所有发往 *.apple.com 443 端口的请求。
  • www.google.com:允许对 www.google.com 的 443 端口进行 MitM。
  • www.google.com:8080:允许对 www.google.com 的 8080 端口进行 MitM。
  • www.google.com:0:允许对 www.google.com 的所有端口进行 MitM。
  • *:允许对所有 443 端口的主机名进行 MitM。(不推荐
  • *:0:允许对所有主机的所有端口进行 MitM。(不推荐

主机名条目还可以在第一个 / 之后包含路径模式。系统会先匹配主机部分来决定是否解密该连接,然后由路径模式筛选哪些请求会被解密和处理。

  • example.com/api/*:允许对 example.com 的 443 端口进行 MitM,但仅限于路径匹配 /api/* 的请求。

一个通用的配置可能如下:

hostname = -*.apple.com, -*.icloud.com, *

Chute 将对所有 MitM 请求应用 URL 重写、Header 重写、Body 重写和 Mock(Map Local)规则以及脚本。

MitM 支持 HTTP/2:Chute 通过 ALPN 同时向客户端提供 h2http/1.1。Surge 的 [MITM]h2tcp-connection 在配置文件中会被接受但会被忽略。

某些应用程序具有严格的安全策略,使用固定证书或 CA。对这些主机启用解密可能会导致问题。

安装并信任 CA 证书

生成(或导入)CA 只完成了一半——操作系统还必须信任它。两步都完成之前,所有被解密的网站都会报证书错误。应用内的证书页面会显示当前状态(「受信任的 CA 证书」/「不受信任的 CA 证书」)。

Chute iOS —— 在配置编辑器中打开 MITM → 配置 CA

  1. 生成新的 CA 证书(已有证书则用导入 P12 证书)。
  2. 将 CA 证书安装到系统。会打开一个 Safari 页面——点 Install Certificate 并允许下载,然后在设置 → 通用 → VPN 与设备管理中安装已下载的描述文件。
  3. 信任它:设置 → 通用 → 关于本机 → 证书信任设置,为 Chute 的 CA 打开完全信任开关。这一步最容易被漏掉——不做它证书只是「已安装」而非「已信任」,解密会一直失败。

Chute Mac —— 在配置窗口中打开 MitM

  1. 生成新证书(或从 PKCS#12 文件导入证书)。
  2. 安装证书到系统。macOS 会请求管理员密码,并把证书作为受信任的根证书写入系统钥匙串——无需再手动操作「钥匙串访问」。
  3. 导出证书可以保存一份 .pem,用于安装到其他设备。

如果证书已受信任但某个应用仍然失败,它多半固定(pin)了自己的证书——用 - 前缀把它的主机从 hostname 中排除即可,不必硬碰。

选项

skip-server-cert-verify

skip-server-cert-verify = true

在执行 MitM 时不验证远程主机的证书。启用后,Chute 将接受上游服务器提供的任何证书,包括自签名或无效的证书。这对开发环境很有用,但会降低安全性。

[MITM]
enable = true
ca-p12 = MIIJtQ.........
ca-passphrase = password
skip-server-cert-verify = true
hostname = *google.com

安全说明:启用 skip-server-cert-verify 会使 MitM 连接容易受到 Chute 与上游服务器之间的中间人攻击。仅在受信任的网络或开发环境中启用此选项。

S. Smart Rabbit LLC © All Rights Reserved            updated 2026-08-18 11:57:36

本页为英文版的翻译。如内容有出入,以英文版为准。

results matching ""

    No results matching ""