使用Charles抓包及Android7.0以上证书文件安装到系统签名里面

工具:mac电脑 root手机一部
安装:Charles可以到官网下载安装,但是没破解的时候,使用30分钟就会自动退出,且貌似只能使用30天

Charles使用:
1.首先在电脑中安装根证书,启动Charles, 在顶部找到Help, 如图操作,并信任
在这里插入图片描述

2.配置SSL Proxying Settings。点击Proxy,点击SSL Proxying Settings,点击add添加,Host填*, Port填443。
在这里插入图片描述

3.手机配置
1)配置代理
Charles中点击如图
在这里插入图片描述

按照提示操作设置WiFi代理就行
在这里插入图片描述

2)如上图浏览器输入chls.pro/ssl下载安装手机证书。Android手机证书的格式是crt,如果格式是gem需要重命名修改文件格式为crt然后直接安装就行

然后愉快的抓包之路就开始了

ps:Android7.0以上可能会遇到显示unknown的状况,让人抓狂。这原因是Android7.0 之后默认不信任用户添加到系统的CA证书,也就是说对基于 SDK24 及以上的APP来说,即使你在手机上安装了抓包工具的证书也无法抓取 https 请求 。所以需要抓包软件的证书安装成系统证书(需ROOT)

操作步骤:
1.修改证书名称
系统证书目录:/system/etc/security/cacerts/
其中的每个证书的命名规则如下:
<Certificate_Hash>.
文件名是一个Hash值,而后缀是一个数字。
文件名可以用下面的命令计算出来:
openssl x509 -subject_hash_old -in <Certificate_File>
后缀名的数字是为了防止文件名冲突的,比如如果两个证书算出的Hash值是一样的话,那么一个证书的后缀名数字可以设置成0,而另一个证书的后缀名数字可以设置成1
2.复制证书到设备上
adb root
adb remount
adb push 7672ac4b.0 /sdcard/
3.复制到系统目录并修改权限
adb shell
su
mount -o rw,remount /system
mv /sdcard/.0 /system/etc/security/cacerts/
chmod 644 /system/etc/security/cacerts/7672ac4b.0
reboot
4.验证。在手机的安全中查看系统证书,看到你安装的证书就行了。Charles unknown也就没了,可以看到抓包的数据了。

### 解决 Charles 抓包时蓝色箭头显示 unknown 的问题 #### 安卓 7.0 及以上设备 HTTPS 请求抓包解决方案 对于安卓 7.0 (API Level 24) 或更高版本的设备,在尝试通过 Charles 进行 HTTPS 流量捕获时可能会遇到 `unknown` 显示的问题。这是因为这些版本的操作系统默认不再信任用户手动添加至系统的 CA 证书[^4]。 为了使 Android 设备能够正常解析并展示 HTTPS 数据流,需执行以下操作: - **安装 Charles SSL 证书** 手机连接 Wi-Fi 后访问浏览器中的代理地址(通常是 http://chls.pro/ssl),下载并安装 Charles 的根证书。 ```bash wget http://chls.pro/ssl -O charles-cert.cer ``` - **设置应用级别的网络安全配置** 对于某些应用程序而言,还需要修改其网络安全策略来允许自定义的信任库。这通常涉及到编辑 app 的 XML 配置文件以包含 `<trust-anchors>` 和 `<certificates>` 元素指向本地存储的 Charles 证书路径。 #### macOS 下 Charles 抓取 HTTPS 请求失败处理办法 当在 Mac 上运行 Charles 并试图拦截 HTTPS 流量却只看到 `<unknown>` 提示时,则可能是由于缺少必要的 SSL 中间件认证所致[^2]。 要修正此状况,应确保已正确完成下列步骤: - **获取并导入 Charles签名证书** 访问菜单栏的帮助选项卡下找到 "SSL Proxying" -> "Install Charles Root Certificate..." 来启动证书部署向导过程,并按照指示保存到钥匙串中作为可信实体。 - **验证证书状态** 使用 Keychain Access 工具确认所加载的 .cer 文件确实被标记为始终信任的状态。 #### 处理映射远程服务器造成的未知错误 如果启用了 Map Remote 功能而遭遇到了类似的 `unknown` 错误消息,那么很可能是目标主机未能成功返回预期响应给客户端造成的结果[^1]。 针对这种情况建议采取措施包括但不限于: - 检查源 URL 是否可达以及目的地是否能接收转发过来的数据; - 确认中间代理链路畅通无阻,排除防火墙或其他安全机制干扰的可能性; - 尝试禁用该特性一段时间观察现象是否有改善迹象。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值