Android7以上Charles抓包Https显示Unkown
简述
小米MIUI10升级至MIUI11,发现之前能够抓包的Charles无法抓包,显示unknown,后来经过测试发现在Android 7以上部分机型会出现这种问题,目测应该是Android对权限进一部进行了把控,后经过几篇文章发现了解决办法,现告知于大家,该方法必须拥有root权限
工具准备
- OpenSSL
- AndroidSDK 或 单一adb
开始
保存pem证书至本地
计算证书
hash
值1
$ openssl x509 -subject_hash_old -in <pem证书>
获取到hash值并将其命名为
hash.0
移动 hash.0 证书放至系统证书目录,Android 系统证书目录:
/system/etc/security/cacerts/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25//判断手机是否链接,手机需要开启开发者模式 USB调试
$ adb devices
//将证书拷贝到系统存储目录下,也可以手动拷贝
$ adb push hash.0 /sdcard/
//进入安卓shell
$ adb shell
//切换至root用户
$ su
//将证书移动至系统证书目录下
//这一步可能会报权限错误
//原因是没有权限,解决方案是 root用户下,执行 mount -o rw,remount /system
$ mv /sdcard/hash.0 /system/etc/security/cacerts/
//赋予证书权限
$ chmod 644 hash.0
//证书文件所有组更改为root
$ chown :root hash.0
//重启手机
$ reboot打开手机,系统设置–>更多设置–>系统安全–>信任的凭据
检查是否配置成功
参考文章: