For the complete documentation index, see llms.txt. This page is also available as Markdown.

MitM 以及 HTTP(S) Rewrite

此功能目前仍属于实验性功能,如配置后连接出现问题请暂时关闭该功能并通过邮件Telegram 群组反馈。

当前版本的 MitM 支持对 HTTP(S) 请求的 URL 进行匹配以及 URL Rewrite,后续版本可能会增加 Headers 匹配/改写、运行脚本等更多功能。

准备

准备 CA 证书

在启用 MitM 之前,需要有一个 CA 证书。

由于当前版本的 app 不支持自动生成,您可以导入已有的 CA 证书,或通过其他工具创建新的 CA 证书。

导入已有 CA 证书

如您已有可用 PKCS 12/PFX 证书(例如您已经正在使用其他支持 MitM 的软件,或部署私有 PKI 系统),可将其进行 base64 编码,并保存编码后的结果备用。

您同时还需要创建该证书时指定的密钥。

对于大部分用户来说,您可能已有可用证书(及其密钥)。

创建全新 CA

对于大部分用户,您可能已有可用 CA 证书。如您有安全性顾虑,建议创建个人 CA 证书。

将 P12 证书转换为 base64 编码:

至此,应该已经准备好了:

  1. base64 编码的 p12 格式 CA 证书

  2. 该证书对应的密钥

信任证书

上一步准备好的 pfx 证书发送到手机(通过邮件/AirDrop等方式并在手机中打开安装该证书。

安装好后,进入系统设置,手动信任该证书。参考:https://support.apple.com/zh-cn/HT204477#:~:text=If%20you%20want%20to%20turn,Mobile%20Device%20Management%20(MDM)

至此,准备工作结束。

配置

MitM

由于 clash 使用 yaml 格式的配置文件,为保持一致性,MitM 相关功能仍然通过 yaml 配置文件来设置。

相关的配置项:

至此 MitM 配置完毕。

如果 log-level 设置为 debug,匹配 MitM hostname 的请求会出现在日志中。

启用 MitM 后可以解密 HTTPS 请求与响应,由于目前版本不支持显示相关内容,所以无法通过 UI 查看。未来的版本中会增加该功能。

Rewrite

由于仅配置 MitM 目前来说没有任何实际意义,可通过配合 URL Rewrite 规则来实现进阶的规则匹配与处理。

相关的配置项:

参数解释:

每一组 Rewrite 规则由以下参数组成:

  • regex:需要重写的请求 URL,支持正则表达式

  • match: url 表示匹配请求的 URL。

    • 目前仅支持 url 一项,之后会新增

  • action:

    • reject:直接关闭连接

    • reject-image:修改该请求的响应,返回 1x1 像素大小的图片文件

    • 自定义 status code:例如,200/404 等

    • header:会替换请求 header 中的 Host 字段

  • target:仅当 action 设置为 3xx status code 时,会设置 Location header 为 target 值,实现 URL 重定向

更多规则可参考,并更具实际使用场景做出调整:https://raw.githubusercontent.com/Watfaq/choc-configs/main/samples/rewrite.yaml

参考链接


如有疑问,可通过文章顶部邮件/Telegram 用户群组反馈。

也可通过支持 Web3 的浏览器访问本文部署于 IPFS 上的版本:http://choc.watfaq.eth/advanced-usage/mitm.html

最后更新于

这有帮助吗?