安卓7.0以后,安卓不信任用户安装的证书,所以抓https时无法解码请求,对于第三方应用,需要将证书添加为系统证书,网上解决方法较多,比如使用安卓模拟器(兼容性差,很多应用闪退),使用xposed框架等,这里使用安卓手机添加证书。 注:需要手机有root权限,以下操作以小米9 SE为准,其他品牌手机操作可能有差别。 help --> SSL Proxying --> Save Charles Root Certificate... 2. 安卓证书储存格式#Copy证书路径: /system/etc/security/cacerts 文件命名格式(如果计算出来的hash值已经存在则编号依次+1): <证书Hash值>.编号 3. 将导出的证书计算hash值#需要安装openssl: win10下安装 Copy//以下根据导出的证书格式2选1//.cer格式证书openssl x509 -inform DER -subject_hash_old -in 证书文件.cer//.pem格式证书openssl x509 -inform PEM -subject_hash_old -in 证书文件.pem 计算结果: 4. 生成系统系统预设格式证书文件#Copy//cer格式openssl x509 -inform DER -text -in xxx.cer > 0dd2455e.0//pem格式openssl x509 -inform PEM -text -in xxx.pem > 0dd2455e.0 最后编辑一下输出的文件,把 -----BEGIN CERTIFICATE----- 到最后的这部分移动到开头。结果如下 5. 上传证书#上传证书文件0dd2455e.0到手机/system/etc/security/cacerts路径下。 方法1: 使用adb连接 Copy执行: 1. adb push 0dd2455e.0 /sdcard 2. adb shell 3. su 4. mount -o remount,rw /system#mount -o rw,remount /system5. cp /sdcard/0dd2455e.0 /system/etc/security/cacerts/ 6. chmod 644 /system/etc/security/cacerts/0dd2455e.0 方法2: 使用第三方文件管理器(推荐)
到此然后重启手机。就可以正常抓https数据包了。 |
|