Android 7.0+ fiddler证书计算hash并安装在系统目录

解决Android 7.0以上系统root手机fiddler抓包tunnel to *:443问题

    • 下载Fiddler证书
    • 更改根证书
    • 证书导入到系统目录

参考自:
https://blog.chenjia.me/articles/171029-223953.html

从Android7.0以后,系统允许每个应用可以定义自己的可信CA集。有部分应用默认只会信任系统预装的CA证书,而不会信任用户安装的CA证书(或者说是应用使用的开发框架默认只信任系统证书,因为开发者通常不关心这些配置,也不会去更改他)。而在Android中用户安装的证书都是用户证书,所以无论是Filddler还是Charles我们都只是把他们的根证书安装到了用户证书,这些应用并不使用他们,所以我们的安装的证书是无效的。
下面对于Android7.0以上版本的手机如何用fiddler进行抓包不出现tunnel to情况。
条件:手机已Root

下载Fiddler证书

设置fiddler端口等,下载FiddlerRoot.cer到本地
Android 7.0+ fiddler证书计算hash并安装在系统目录_第1张图片

更改根证书

先将我们的根证书名称改为.类型

Certificate_Hash表示证书文件的hash值,Number是为了防止证书文件的hash值一致而增加的后缀(用0就行了)

1.cd 至证书目录
2.生成PEM文件

openssl x509 -in FiddlerRoot.cer -inform DER -out fiddler.pem -outform pem

此时,会在证书目录下生成一个fiddler.pem文件
3.提取hash

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

hash计算结果
4.执行

cat fiddler.pem > 035f9290.0

此时会在该目录下生成035f9290.0文件

openssl x509 -inform PEM -text -in fiddler.pem -out /dev/null >>035f9290.0

证书导入到系统目录

将证书安装到系统区操作还是相对简单的,将证书用指定的名称放到指定的位置(/system/etc/security/cacerts/)就可以了,用MT管理器或者adb push,并修改权限为664
Android 7.0+ fiddler证书计算hash并安装在系统目录_第2张图片
重启手机之后在系统设置-受信任的凭据里面在系统模块下就可以找到fiddler根证书了。
Android 7.0+ fiddler证书计算hash并安装在系统目录_第3张图片

你可能感兴趣的:(Android)