安卓手机添加系统证书
前言
安卓7.0以后,安卓不信任用户安装的证书,所以抓https时无法解码请求,对于第三方应用,网上解决方法较多,比如使用安卓模拟器(兼容性差,很多应用闪退),使用xposed框架,将证书注入apk包等,这里使用给安卓手机添加系统证书。
注:需要手机有root权限(root手机可以参考Pixel3刷机Android9并Root)
导出证书
这里以Charles为例,help > SSL Proxying > Save Charles Root Certificate
生成证书
安卓手机系统证书存储在**/system/etc/security/cacerts**
文件名格式为**<证书Hash值>.编号**,如xxxxxxxx.0(hash值已经存在则编号依次+1)
计算上面导出的证书的hash值,示证书格式选命令
1 | openssl x509 -inform DER -subject_hash_old -in 证书文件.cer # cer格式证书 |
计算结果如下:
1a8d77bf则为证书hash值,再去/system/etc/security/cacerts看已存在的证书的hash值,确定编号,一般都不会重复
生成安卓系统预设格式证书文件,示证书格式选命令
1 | openssl x509 -inform DER -text -in 证书文件.cer > 1a8d77bf.0 # cer格式证书 |
最后编辑一下输出的文件,把 —–BEGIN CERTIFICATE—– 到 —–END CERTIFICATE—– 这部分移到文件开头
结果如下
上传证书
这里假定证书文件名1a8d77bf.0
1 | adb push 1a8d77bf.0 /sdcard # 把证书上传到手机sd卡 |
注:系统目录挂载为可读写本人只在android9系统中测试成功,貌似android10以后比较麻烦,可自行查找方法
最后
最后重启手机,就可以正常抓https数据包了。
到手机 设置->安全->信任凭据–>系统 可以查看到安装的证书
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 追梦老头!
评论