用charles或fiddler抓app包的https接口必须要安装ca证书,才能正常抓包,安卓7之前把ca证书安装到用户证书下即可,但安卓7以上只有系统级证书才能被信任,所以为了能正常抓包,需要把ca证书安装到系统证书下,所以本解决方案是分享如何将Fiddler证书安装在系统级证书下。
一、安装OpenSSL
首先可以在CMD中执行命令查看电脑中是否安装了openssl
如果没有报错,即表示已安装,则跳到第二步骤教程继续操作
下载及安装可参考教程:openssl安装教程(windows7系统,超详细) - 腾讯云开发者社区-腾讯云根据自己电脑的配置选择需要的版本,我这里选择的第1个Win64 OpenSSL v1.1.1i Light。https://cloud.tencent.com/developer/article/2059686
二、制作证书
1、将Fiddler的证书导出到桌面
2、将cer转成pem,在CMD命令行中进入桌面路径后,复制执行以下命令,将Fiddler的证书的cer转成pem格式
openssl x509 -in FiddlerRoot.cer -inform DER -out certificate.pem -outform PEM
3、将pem 格式证书重命名 为 c06587b6.0 格式, 其中 c06587b6通过以下命令取得:
openssl x509 -subject_hash_old -in certificate.pem
执行后会输出证书的哈希值,如c06587b6,得到的第一行c06587b6将作为证书的文件名,将charles的证书改名为c06587b6,为什么要加.0是因为防止文件名冲突,如果你的根证书文件夹里面已经有这个文件名了,那就将.0 改为 .1,以此类推,以下为执行命令
ren certificate.pem c06587b6.0
到此证书制作步骤已完成。
三、将制作的证书导入到手机
1、执行以下adb命令将证书导入到/system/etc/security/cacerts/
adb root
adb remount
adb push c06587b6.0 /system/etc/security/cacerts/
adb shell
cd /system/etc/security/cacerts/
chmod 644 c06587b6.0
reboot文章来源:https://www.toymoban.com/news/detail-444215.html
2、重启手机后验证是否可以抓包成功文章来源地址https://www.toymoban.com/news/detail-444215.html
到了这里,关于安卓APP无法抓包的解决方案(可能是你需要的)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!