fiddler证书导入手机系统中认证-解决 Android7.0+ 无法抓Https包

1.准备
一台已root的手机(由于手机版本型号的不同,请自己找寻root的方式)

安装 Openssl

OpenSSL官网没有提供windows版本的安装包,可以选择其他开源平台提供的工具。例如 http://slproweb.com/products/Win32OpenSSL.html 下载适合自己系统的文件

点击一键傻瓜式安装

找到安装目录把bin目录放入path

2.连接手机打开调试模式

adb devices #查看当前连接的手机列表 

3.证书生成
将Filddler或者其余抓包程序的证书导出,通常为xxx.cer或者xxx.pem
使用openssl的x509指令进行cer证书转pem证书 和 用md5方式显示pem证书的hash值svg
1. 证书转换,已是pem格式的证书不须要执行这一步

openssl x509 -inform DER -in xxx.cer -out cacert.pem

2. 进行MD5的hash显示
openssl版本在1.0以上的版本的执行这一句

openssl x509 -inform PEM -subject_hash_old -in cacert.pem

openssl版本在1.0如下的版本的执行这一句

openssl x509 -inform PEM -subject_hash -in cacert.pem

将第二条指令输出的相似e5c3944b的值进行复制spa

将pem证书重命名
使用pem的hash名称去(相似于e5c3944b)对pem证书进行重命名

mv cacert.pem e5c3944b.0 #0是文件格式

将新证书放入手机系统证书目录

手机系统目录位置是:

/system/etc/security/cacerts

须要拷贝至此目录必须拥有root权限
此处如果adb push 导入系统目录无权限

#进入手机shell界面
adb shell 
#开启root权限
执行 su 进入root模式
# 开启另一个cmd 把文件放到sdcard
adb push E:\Download\ROOTENV\Certificate\b7f69172.0 /sdcard
# 挂载 失败的话 加上 system
mount -o rw,remount /system
# 复制到根证书目录
cp /sdcard/b7f69172.0 /etc/security/cacerts
# 给予权限
chmod 644 /etc/security/cacerts/b7f69172.0

重启Android设备以生效

拷贝证书至

/system/etc/security/cacerts

以后,重启手机就能够使证书生效了

点赞