用mac电脑开发安卓的都应该知道青花瓷吧~(不知道的都是小菜鸡,邪恶.jpg)
安装证书
电脑端
点击 Help -- SSL Proxying -- Install Charles Root Certificate
可以看到可怕的不信任红字,系统默认对Charles证书是不信任的,别慌,我们双击Charles证书
手机端
点击 Help -- SSL Proxying -- Install Charles Root Certificate on a Mobile Device or Remote Browser
弹出提示,手机wifi网络配置代理
然后就可以在手机浏览器输入 chls.pro/ssl 下载证书
证书下载下来是一个 *.pem 的文件,我们需要重命名为 *.crt 文件,不然无法安装,有的浏览器直接下载下来就是 *.crt 文件,看运气~~ 然后进入手机设置安装,在此以小米6手机为例,点击 设置 -- 更多设置 -- 系统安全 -- 加密与凭据 -- 从存储设备安装 找到刚才浏览器下载证书的路径选择安装,为证书起个名字
点确定,输入账户密码完成安装,回到Charles
可以看到https链接下终于不再显示<unknown>了,而是感人的数据!
Android7.0以上证书无效问题解决
Android 7.0以后系统默认不信任用户证书,我们需要把证书加入到系统证书里去,具体操作如下:
# 手机必须root
adb root
# 禁止分区检测(disable-verity命令如果报找不到,就是adb版本太低了,下载最新版platform-tools)
adb disable-verity
# 重启
adb reboot
# 以 root 权限运行
adb root
# 重新挂载
adb remount
# 设置读写权限
adb shell mount -o rw,remount /system
# 获取证书Hash值(openssl 在windows环境下要自己安装https://slproweb.com/products/Win32OpenSSL.html,Mac自带)
openssl x509 -subject_hash_old -in <证书>
如下运行命令后得到Hash值为 c8cb60a2
,把证书重命名为 c8cb60a2.0
即 Hash值.0
最后
# 安装证书到安卓系统证书目录 /system/etc/security/cacerts
adb push c8cb60a2.0 /system/etc/security/cacerts