charles系统证书安装
注意
Android7.0以上的系统安装完证书后,抓包时可能会遇到显示unknown的状况。这是因为我们安装的证书为用户证书,而Android7.0 之后默认不再信任用户证书,也就是说对基于 SDK24 及以上的APP来说,即使你在手机上安装了抓包工具的证书也无法抓取 https 请求 。所以需要抓包软件的证书安装成系统证书。
1. 手机要Root
需要先获取android
手机的Root
权限,不Root
是无法安装为系统证书的。这里用的是魅族pro7。
2. 下载并重命名证书
在 http://chls.pro/ssl 下载手机证书(该手机证书可通过手机下载,然后再拷贝到电脑上),将下载好的 .pem 文件拷贝到电脑上,并用命令行执行找到该文件,执行以下命令:
openssl x509 -subject_hash_old -in xxx.pem
由执行结果可以得到一个 ab3d948a
的 hash 值,将刚才下载的 .pem 文件改为 ab3d948a.0
即可,并将该证书发送到安卓设备。
后缀名的数字是为了防止文件名冲突的,比如如果两个证书算出的Hash值是一样的话,那么一个证书的后缀名数字可以设置成0,而另一个证书的后缀名数字可以设置成1
3. 移动证书到安卓系统
使用数据线将手机与电脑连接,手机打开 usb 调试,打开pc的命令行,按顺序执行以下操作
adb devices # 检测是否有安卓设备连接
adb shell # shell连接安卓系统
su # 获取root权限,当你看到提示符由 $ 变为 # 的时候,说明权限获取成功
mount -o rw,remount /system # 修改system文件夹的读写权限
mv /sdcard/ab3d948a.0 /system/etc/security/cacerts/ # 复制ab3d948a.0证书文件到cacerts目录下
4. 设置权限
chmod 644 /system/etc/security/cacerts/ab3d948a.0 # 设置权限
reboot ## 重启
5. 愉快玩耍
最后就可以开心心地抓包啦!!!