Fiddler Android 7.0以上无法抓取https包问题解决

from–https://www.lixiaopeng.top/article/55

 

Fiddler提供的证书是.cer格式的证书,而安卓系统跟证书是.0格式的证书,我们需要做的是把fiddler证书先转换成安卓需要的.0证书格式,然后将证书拷贝到Andorid根证书存放目录 /system/etc/security/cacerts/目录下面,具体参见下面流程

第一步准备一部获取root权限的android手机

第二步浏览器输入fiddler证书下载地址,下载FiddlerRoot.cer证书

第三步,将cer证书转换成.0证书

openssl x509 -inform DER -subject_hash_old -in FiddlerRoot.cer   
269953fb  #输出cer证书hash,转换成android证书的命名就用 269953fb.0
openssl x509 -inform DER -in FiddlerRoot.cer -text > 269953fb.0   #导出android证书
编辑输出的文件,把"-----BEGIN CERTIFICATE-----"到文件结束这部分移动到文件首部

第四步,将证书导入android系统证书目录

adb devices #查看设备
adb root #root用户  
adb push 269953fb.0 /sdcard  #推送证书到手机 
adb disable-verity 
adb reboot 
adb remount 
adb root 
adb shell 
su 
mount -o rw,remount /system 
cp /sdcard/269953fb.0 /system/ect/security/cacerts/
cd /system/etc/security/cacerts
chmod 644 269953fb.0  #分配权限 
exit;

这样证书就被导入到android根目录了,打开任意app,小程序,fiddler完美展示数据,舒服 ~

参考链接

  1. http://wiki.cacert.org/FAQ/ImportRootCert#Android_Phones_.26_Tablets
  2. https://blog.csdn.net/xiangguiwang/article/details/76400805
  3. https://segmentfault.com/a/1190000017035564
  4. https://www.openssl.org/docs/manmaster/man1/x509.html
  5. https://blog.csdn.net/houxn22/article/details/81901520

ps:2020.4.8更新   参考链接  https://blog.csdn.net/liuluok123/article/details/95971731

三、Openssl安装完成后把证书导入到Linux系统下并进行转换

转换命令:

1.openssl x509 -inform der -in fiddler.cer -out fiddler.pem

2.openssl x509 -inform PEM -subject_hash_old -in fiddler.pem | head -1

得到类似字符串:9a5ba575

3.cat fiddler.pem > 9a5ba575.0

4.openssl x509 -inform PEM -text -in fiddler.pem -out /dev/null >> 9a5ba575.0

5.openssl x509 -inform PEM -subject_hash -in fiddler.pem | head -1

得到类似字符串:425356aa

6.cat fiddler.pem > 425356aa.0

7.openssl x509 -inform PEM -text -in fiddler.pem -out /dev/null >> 425356aa.0

四、把生成好的9a5ba575.0、 425356aa.0这两个文件放入手机/system/etc/security/cacerts 目录下,并修改9a5ba575.0、 425356aa.0这2个文件的读写权限:

修改读写权限命令:chmod 777 9a5ba575.0

五、重启手机,如果生成的文件正确,可以在 信任的凭据 -> 系统中找到如下Fiddler的证书,就可以正常抓取HTTPS的包了

上一篇
下一篇