HarmonyOS 鸿蒙Next charles可以抓取http的包,无法抓取https的包

发布于 1周前 作者 zlyuanteng 来自 鸿蒙OS

HarmonyOS 鸿蒙Next charles可以抓取http的包,无法抓取https的包

charles可以抓取http的包,无法抓取https的包 网络库使用的是axios 

2 回复
试着参考以下的步骤来执行一下试试呢:

真机上证书信任界面需要通过hdc命令调起,可参考如下:

深色代码主题
复制
 hdc shell aa start -a MainAbility -b com.ohos.certmanager 

一、 PC端Charles导出证书,点击 Help—>SSL Proxying—>Save Charles Root Certificate

 二、 导入系统根证书至手机: 

方案【1】:启动证书安装器进行指定pem证书安装: 1) 将Charles导出的pem文件hdc file send到手机存储器内 2) hdc shell aa start -a MainAbility -b com.ohos.certmanager 启动证书安装器 3) 选择从存储设备安装,选择指定pem证书 

方案【2】:替换CA证书,证书路径为沙箱映射路径,系统预设CA证书位置:/etc/ssl/certs/cacert.pem,将Charles导出的pem文件hdc file send到此路径下(目前仅支持后缀名为.pem的文本格式证书);

 三、安装Charles证书到PC系统可信目录,操作步骤: 点击 Help—>SSL Proxying—>Install Charles Root Certificate—>安装证书—>选择证书存储路径为:受信任的根证书颁发机构 

四、设置代理,操作步骤: 

1)点击 Proxy—>SSL Proxy Settings—>在Include添加 : 和 *:443 

2)点击 Proxy—>Proxy Settings—>勾选Enable transparent HTTP proxying 

五、鸿蒙App开发时,HTTP请求HttpRequestOptions参数设置: 

1)设置usingProxy为true,表示使用HTTP代理; 

2)设置caPath为"/etc/ssl/certs/charles-ssl-proxying-certificate.pem"(示例),如默认使用系统预设CA证书目录:/etc/ssl/certs/cacert.pem,也需要手动设置 

六、将手机与PC连接在同一局域网下,手机连接WiFi时,点击代理设置(手动),设置代理IP,端口为Charles监听的端口,在上述步骤四的Proxy Settings中可以查看和修改;

 七、打开charles,开始抓包:

模拟器抓包目前安装完证书但是抓不到接口,暂时还不支持,您可以直接用真机抓包的,真机的功能更全面一点

更多关于HarmonyOS 鸿蒙Next charles可以抓取http的包,无法抓取https的包的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next环境中,使用Charles抓取HTTPS包时遇到问题,通常是因为SSL/TLS代理设置未正确配置或证书未正确安装。以下步骤可尝试解决该问题:

  1. 启用SSL代理

    • 在Charles设置中,确保已启用“SSL Proxying”。
    • 配置具体的Host和Port,或使用通配符匹配目标HTTPS流量。
  2. 安装Charles根证书

    • 在鸿蒙设备上,通过浏览器访问chls.pro/ssl下载并安装Charles根证书。
    • 确保证书安装到设备的系统信任存储中,而非仅浏览器信任。
  3. 检查网络配置

    • 确保鸿蒙设备配置为通过Charles的代理服务器访问网络。
    • 检查防火墙或网络策略是否允许设备通过代理进行SSL/TLS通信。
  4. 重启Charles和设备

    • 有时更改设置后需要重启Charles和鸿蒙设备以确保所有设置生效。
  5. 验证Charles日志

    • 查看Charles的SSL Proxying日志,检查是否有错误或警告信息。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。此链接提供进一步的技术支持渠道。

回到顶部