安卓APP无法抓包的解决方案(可能是你需要的)

        用charles或fiddler抓app包的https接口必须要安装ca证书,才能正常抓包,安卓7之前把ca证书安装到用户证书下即可,但安卓7以上只有系统级证书才能被信任,所以为了能正常抓包,需要把ca证书安装到系统证书下,所以本解决方案是分享如何将Fiddler证书安装在系统级证书下。

一、安装OpenSSL

首先可以在CMD中执行命令查看电脑中是否安装了openssl

安卓APP无法抓包的解决方案(可能是你需要的)_第1张图片 如果没有报错,即表示已安装,则跳到第二步骤教程继续操作

    下载及安装可参考教程:openssl安装教程(windows7系统,超详细) - 腾讯云开发者社区-腾讯云根据自己电脑的配置选择需要的版本,我这里选择的第1个Win64 OpenSSL v1.1.1i Light。https://cloud.tencent.com/developer/article/2059686

二、制作证书

1、将Fiddler的证书导出到桌面

安卓APP无法抓包的解决方案(可能是你需要的)_第2张图片

 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

2、重启手机后验证是否可以抓包成功

你可能感兴趣的:(https,网络协议,http)