最近想要对某个App 进行抓包薅羊毛。但是手机不信任来自Fiddle 的根证书
于是尝试安装CA 证书并信任。尝试了一下发现根本没有用。上网搜索了一下全是一帮傻逼在那瞎几把抄来抄去的,诅咒这些傻逼们早日螺旋升天,全家暴毙
Android 设备自从一定版本以来就不支持用户把自定义的证书上传到系统并设置成根证书了。网上的一帮傻逼还是把旧方法复制来复制去的
正确的做法是,手机必须要root ,通过adb 连接到电脑 ,并使用 root 权限连接手机。不同手机adb root 模式连接的方法不同。本人小米6 是 adb root
然后你需要一个 linux 或者 mac 设备,windows 因不自带openssl 组件固不推荐
我们将 fiddle 证书下载到linux设备上,将证书转换成 crt 格式
openssl x509 -inform DER -in FiddlerRoot.cer -out FiddlerRoot.pem
然后查看证书的subject_hash_old,subject_hash 值
openssl x509 -inform PEM -subject_hash_old -in FiddlerRoot.pem
即图示的 269953fb , 035f9290
然后把证书导出成手机可以识别的文件
cat FiddlerRoot.pem > 269953fb.0
.openssl x509 -inform PEM -text -in FiddlerRoot.pem -out /dev/null >> 269953fb.0
把文件复制一份 名称为 035f9290.0
然后把 这两个文件使用 adb push 到 手机的 /system/etc/security/cacerts
注意部分手机可能会出现 remote couldn't create file: Read-only file system 的报错,这是因为系统分区被锁定成只读模式导致的
我们只需要通过adb 执行
su
mount -o rw,remount /
即可。这里再次鄙视一下网上死妈的说 adb disable-verity 的傻逼,怎么到处都是这种无效回复
然后修改读写权限 chmod 777 269953fb.0 035f9290.0
此时就可以在系统受到信任的凭据中看到