本文主要解决的是Android 模拟器/手机的抓包证书问题。
也就是报“java.security.cert.CertPathValidatorException”错误的问题。
首先要启动 mitmproxy,三个版本任选。
- 打开 mitm.it。如果页面上只有一行大字“If you can see this, traffic is not passing through mitmproxy.”,说明你没有正确配置代理。先去 WiFi 设置里设置好代理地址。
- 然后找到 Android 下面的 Show Instructions,点击“this Magisk module”这个链接,下载下来一个压缩包
- 如果你的模拟器/手机已经刷了 Magisk,那么直接刷入这个 Magisk 模块即可,下面的就不用看了,到此结束。
- 如果没有刷 Magisk,打开刚刚下载的压缩包,找到
/system/etc/security/cacerts/
里面有一个.0
文件,解压出来备用。 - 给手机/模拟器 root(部分模拟器还需要在设置里挂载 system 分区为可读写),把解压出来的
.0
文件放到/system/etc/security/cacerts/
目录下。 - 修改
.0
文件的权限,保持和目录里的其他.0
文件的权限相同。
(这一步不做似乎没什么影响) - 重启
(这一步不做好像也没什么影响) - 去设置里看看系统证书是不是有 mitmproxy,如果有就对了,说明安装成功,接下来抓包就可以了。
如果你已经完成上述步骤而且反复检查无误,请确认是否有多台设备共享同一个 .0
文件的情况!
注意:这个 .0
文件不可以跨设备共享!!!每台设备的 .0
文件都不一样!!!
注意:这个 .0
文件不可以跨设备共享!!!每台设备的 .0
文件都不一样!!!
注意:这个 .0
文件不可以跨设备共享!!!每台设备的 .0
文件都不一样!!!
如果你要把 mitmproxy 脚本打包给别人用,一定要用在别人的机器上访问 mitm.it 下载得到的 .0
文件!否则依旧会抛异常!
参考链接:
Android安装Root证书 - 掘金
添加Fiddler/Mitmproxy证书为安卓系统证书 - 简书
mitmproxy 抓包安卓7以上,ca证书安装方法。安卓7到9 10-之后 (包含) - 掘金
System CA on Android Emulator