Surge 有很多强大的功能,MitM 是其中之一,本篇介绍如何在 iOS 以及 Mac 上配置 CA 证书。官方给的建议是先在 Mac 上新建 CA,然后导入 iOS 中。不过当时 iOS 直接生成的功能未完成,此次使用的是在 iOS 端直接生成,再导入到 Mac 中,个人觉得相对方便些。

iOS:

首先在 iOS 中生成新证书

生成新证书后选择 Install CA Certificate to System

将证书安装好之后,需要信任证书。

在通用 - 关于最下面的证书信任设置中开启证书

至此证书设置就完成了,下面去 Surge 界面里开启 MitM,在 hostname 里添加你想要抓包的域名即可,抓包的结果可以在分析中查看。

Mac:

欧由于使用了 iOS 生成证书,如果你的设置是使用 iCloud 同步的话,可以在 Surge 的配置文件最下方中找到 MitM 的信息。将 ca-p12 的值保存到文本文件 ca-p12 中,在 Terminal 使用命令

base64 --decode ca-p12 > Certificates.p12

s生成 p12 证书文件,打开 Keychain Access.app,点击 文件-导入项目将刚才生成的 p12 文件导入。

输入密码导入成功后会显示在列表中

将 CA 拖入 System 中,否则 Safari 会不识别

双击证书,选择总是信任

不信任的话会报错

至此 Mac 端的证书也配置完成了。尝试登陆抓包显示如下:

登陆时候的验证码

Surge 某特殊功能只是其小小的一块,而其强大的调试诊断能力,才是它最大的价值体现。

官方参考:https://medium.com/@Blankwonder/surge-mitm-5281d8ace79d