在线销售型的网站,巢湖城市建设投资有限公司网站,全球邮箱wordpress,广州网络推广外包From#xff1a;https://testerhome.com/topics/21956
OpenSSL #xff1a;https://slproweb.com/products/Win32OpenSSL.html 谷歌在安卓7.0修改了安全策略#xff0c;安卓系统 大于 7.0 时#xff0c; 应用不在信任用户安装的证书文件。用户添加的 CA 证书不能再用于安全…
Fromhttps://testerhome.com/topics/21956
OpenSSL https://slproweb.com/products/Win32OpenSSL.html 谷歌在安卓7.0修改了安全策略安卓系统 大于 7.0 时 应用不在信任用户安装的证书文件。用户添加的 CA 证书不能再用于安全连接对于 https 传输的数据就抓取不到了会显示unknown。
解决方法
降级 APP降级 系统版本将用户证书偷渡成系统证书需要有 root 权限。将 charles 的 CA 证书安装进系统信任的证书目录下这样在开启 charles 代理的时候系统就会认为CA证书安全从而可以获取 https 数据。Fiddler 证书安装到安卓根目录 一台已 root 过的手机开启开发者选项然后连接电脑。
安卓系统证书跟 Fiddler 证书的格式不一样需要转换。
1、安装 OPENSSL【https://slproweb.com/products/Win32OpenSSL.html】。linux 好像默认安装的有如果使用 linux 系统可以忽略这一步。
2、下载 fiddler 证书到电脑上
3、打开命令窗口执行以下命令查看证书哈希信息
openssl x509 -inform DER -subject_hash_old -in FiddlerRoot.cer 安卓系统的安全证书在 /system/etc/security/cacerts/目录下进入adb shell打开目录就能看到这些证书文件。
文件名是 Hash值 加 数字后缀。后缀名的数字是为了防止文件名冲突的比如如果两个证书算出的Hash值是一样的话那么一个证书的后缀名数字可以设置成0而另一个证书的后缀名数字可以设置成1
4、转换证书
openssl x509 -inform DER -in FiddlerRoot.cer -text [哈希].0
5、用记事本编辑证书 将 -----BEGIN CERTIFICATE----- 到 -----END CERTIFICATE----- 的部分放到文件最前面
6、将证书放到手机的 /system/etc/security/cacerts/ 下
执行 adb 命令连接手机获取权限把文件夹挂载为读写模式把文件复制到证书根目录
adb root
adb remount
adb shell mount -o rw,remount /system
adb push e5742ab9.0 /system/etc/security/cacerts
重启手机可以看到 Fiddler 的证书已经变成系统证书了接下来就可以愉快的抓包了 Charles 证书安装到安卓根目录 一台已 root 过的手机开启开发者选项然后连接电脑。
下载证书到电脑上
电脑端浏览器输入 chls.pro/ssl 即可下载如果未下载也可以在 charles help SSL Proxying Save Charles Root Certificate 保存证书到本地文件夹
打开命令窗口执行以下命令查看证书信息openssl x509 -subject_hash_old -in charles-ssl-proxying-certificate.pem 重命名证书mv charles-ssl-proxying-certificate.pem e5742ab9.0
执行 adb 命令连接手机获取权限把文件夹挂载为读写模式把文件复制到证书根目录
adb root
adb remount
adb shell mount -o rw,remount /system
adb push e5742ab9.0 /system/etc/security/cacerts
以上就 OK 了。如果不放心可以 cd 到对应目录检查文件是否存在文件权限是否与其他证书一致。证书安装 OK其他代理选项正常配置即可
如果出现 hash.0Read-only file system 这个警告这是因为 system 文件为只读需要将其挂载为可读写。一般的解决方法是mount -o rw,remount /system 修改system读写权限然后再进行复制操作。如果修改了之后还是提示Read-only file system还有方法
adb root
adb disable-verity
adb reboot #手机会重启不用关闭cmd窗口手机可能需要拔掉数据写重新连接
adb root
adb shell
mount -o rw,remount /system #再次进行修改
然后就可以进行复制操作了。复制完之后输入reboot 重启
重启之后打开设置 --- 更多设置 --- 系统安全 --- 信任的凭据中可以看到安装的证书 然后通过设置 charles 代理就可以查看到 https 的数据了。