使用抓包工具时,通常需要给手机或者模拟器安装证书.
安卓7.0以后,安卓不信任用户安装的证书.所以需要将证书添加为系统证书.
在我多次测试后终于解决了问题!
--思路:1.导出Fiddler的证书
2.把证书转换为pem格式,并且另存起来
3.计算出pem证书的Hash值,并另存起来
4.修改带有Hash值得系统级证书
5.将修改后的文件传入虚拟机的系统级证书目录.
--安装教程:准备软件:
1.逍遥模拟器 -->安卓虚拟机
2.Fiddler -->PC抓包软件
3.adb -->PC工具,用来连接手机或虚拟机
4.openssl -->PC工具,用来转换证书文件
adb和openssl的安装方式请自行百度
操作步骤: 一.将fiddler的证书导出至桌面(1).打开fiddler - options
(2).选择- Https - Actions - Export Root Certificate to Desktop,将证书保存到桌面
此时桌面将出现证书文件
二.将证书转换成pem格式的文件,并保存在桌面(1).在cmd中输入以下命令:
openssl x509 -inform DER -in C:UsersAdminDesktopFiddlerRoot.cer -out C:UsersAdminDesktopcacert.pem
注:我这里填写的文件路径是绝对路径,你需要改成你自己的绝对路径
C:UsersAdminDesktopFiddlerRoot.cer 代表我的证书文件路径和名字
C:UsersAdminDesktopcacert.pem 代表我要生成的文件存放路径和名字,新文件后缀为.pem
此时你的桌面会生成一个新的文件
三.计算证书的Hash值(1).在cmd中输入以下命令:
openssl x509 -inform PEM -subject_hash_old -in C:UsersAdminDesktopcacert.pem
注:这里的pem文件就是刚刚生成的文件,需要改成你自己文件的绝对路径
计算结果如下:
生成的这串代码很重要,下一步创建新的文件时需要以它为名字
四.生成新的安卓系统级证书(1).在cmd输入以下命令:
openssl x509 -inform PEM -text -in C:UsersAdminDesktopcacert.pem > C:UsersAdminDesktope5c3944b.0
注:我这里填写的文件路径是绝对路径,你需要改成你自己的绝对路径
C:UsersAdminDesktopcacert.pem 代表我刚刚生成的pem证书文件路径和名字
C:UsersAdminDesktope5c3944b.0 代表我要生成的安卓系统级证书存放路径和名字
特别注意:这里的新文件名字必须是刚刚计算出来的hash值.并且以.0为后缀
此时你的桌面生成一个新的文件:
(2).使用记事本,打开新生成的文件 .将计算出来的代码移动到上面
以下是移动后的样子:
保存即可:
五.将保存的安卓系统级证书安装到模拟器(1).打开模拟器,并且确保开启了Root
(2)在cmd中输入以下命令:
# 查看手机和模拟器是否连接成功 adb devices
出现这个说明连接成功
注:因为你模拟器得adb.exe的版本跟你电脑的adb.exe版本可能不一致.这里很可能出错.可以根据错误自行百度解决方案.
通常你需要复制adb.exe文件,并且覆盖模拟器原来的文件.
(3)开启模拟器的读写权限:
adb remount
开启成功
(4.)将证书文件传输至模拟器的/system/etc/security/cacerts路径下
adb push C:UsersAdminDesktope5c3944b.0 /system/etc/security/cacerts/
注:这里的文件就是刚刚使用记事本修改完的系统级证书文件,需要改成你自己文件的绝对路径.
六:进入模拟的查看是否安装成功,并且重启模拟器(1)进入模拟器手机中的 设置 - 安全 - 信任的凭据 -系统
查看是否有安装好的证书
(2).重启模拟器即可正常抓包
参考文章:
参考文章1
参考文章2



