Android 7 之后, 手机系统只信任系统内置的根证书。导入的用户证书无法信任,这样一来, 我们就无法使用fidder 抓包 app 的 HTTPS 请求。这里我将以Fiddler Everywhere 抓包工具为例演示如何将证书写入到Android系统根证书目录下(/system/etc/security/cacerts/)。
环境:
- Fiddler Everywhere3.4.1
- 夜神模拟器
- 虚拟环境Android7(32位)
一、准备工具
-
下载 Win32/Win64 OpenSSL,网址http://slproweb.com/download/Win64OpenSSL_Light-3_0_5.msi安装
-
下载 适用于 Windows 的 SDK Platform-Tools Android 调试桥 (adb),网址:https://dl.google.com/android/repository/platform-tools-latest-windows.zip
二、从Fiddler Everywhere 导出证书到桌面 (文件名为FiddlerRootCertificate.pem)
从菜单中 view -> Preferences
三、用以下命令得到hash值
openssl x509 -subject_hash_old -in FiddlerRootCertificate.pem
执行以上命令注意openssl程序与文件FiddlerRootCertificate.pem 的位置,我是将FiddlerRootCertificate.pem直接复制到openssl.exe所在目录,然后执行的cmd.这样较方便。
四、用hash值作为文件名,将FiddlerRootCertificate.pem 重命名为 e5c3944b.0, 注意此处扩展名为数字0
五、开启虚拟机,用adb去连接
六判断是否为root(默认开启了的)
注意如果没有root权限,请在虚拟机中勾选,重启,再连接: