Shiux
Shiux
文章50
标签36
分类7

文章分类

一言

文章归档

使用Charles抓高版本Android包的ssl证书问题

使用Charles抓高版本Android包的ssl证书问题

Android7以后,Android不信任用户安装的证书,所以抓https时无法解码请求,对于第三方应用,需要将证书添加为系统证书,网上解决方法较多,比如使用安卓模拟器(兼容性差,很多应用闪退),使用xposed框架等,这里使用Android手机添加证书。

ps: 需要手机有root权限,以下操作以Redmi为准,其他品牌手机操作可能有差别。

导出证书(以Charles为例)

help --> SSL Proxying --> Save Charles Root Certificate...

保存证书到本地目录

Android 证书存储格式

证书路径:/system/etc/security/cacerts

证书路径

文件命名格式(如果计算出来的hash值已经存在则编号依次+1)<hash>.%d

将导出的证书计算hash值

需要安装openssl,Windows11默认安装openssl。

根据导出格式2选1。

1
2
openssl x509 -inform DER -subject_hash_old -in <filename>.cer # .cer格式证书
openssl x509 -inform PEM -subject_hash_old -in <filename>.pem # .pem格式证书

计算hash值

上图输出的hash为0cc1f4c0

因此将.pem证书重命名为0cc1f4c0.0

导入到手机

使用任何传输工具(比如微信、QQ等)将证书文件传输到手机。

到手机系统设置 > 密码与安全 > 系统安全 > 更多安全设置 > 加密与凭据 > 安装证书 > CA证书。

选择在手机根目录的证书文件安装。

使用Magisk模块提高权限

在Magisk中安装Move Certificates模块(直接下载压缩包安装),重启手机即可使用Charles抓取手机https包。

本文作者:Shiux
本文链接:https://blog.shiux.com/article/high-version-android-charles-capture-packet-ssl-certificate/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可