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。(不推荐)
一个通用的配置可能如下:
hostname = -*.apple.com, -*.icloud.com, *
Chute 将对所有 MitM 请求应用 URL 重写规则和头部重写规则。
某些应用程序具有严格的安全策略,使用固定证书或 CA。对这些主机启用解密可能会导致问题。
选项
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 与上游服务器之间的中间人攻击。仅在受信任的网络或开发环境中启用此选项。