Fiddler HTTPS Andrioid 9.0证书解决方案

Fiddler HTTPS Andrioid 9.0证书解决方案

Android 7.0后更新安全策略,软件可以自身选择是否相信用户导入的证书。所以当我们在手机导入Fiddler的证书后,有些软件依旧抓不到Https的包。
解决方案有2个:

  1. APK里面加入相应的代码
  2. 把Fiddler证书导入到手机系统里面而非个人里面

一、首先将Fiddler证书导出来,保存为Fiddler.cer
二、Linux安装Openssl
安装步骤参考https://www.jb51.net/article/134400.htm
三、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的包了

将文件导入Android解决方案

# adb push 425356aa.0 /data/local/tmp
# 进入命令行
adb shell
# 进入超级管理员, 进入后由$变为#号
su
# 更改权限
chmod 777 system
# 重新挂载system,若失败可以尝试重启手机
mount -o rw,remount -t auto /system
# 将文件拷贝到/system/etc/security/cacerts
cp 425356aa.0 /system/etc/security/cacerts
# 修改文件权限
chmod 777 /system/etc/security/cacerts/425356aa.0

你可能感兴趣的:(Fiddler HTTPS Andrioid 9.0证书解决方案)