HarmonyOS 鸿蒙Next用Charles如何配置抓包

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

HarmonyOS 鸿蒙Next用Charles如何配置抓包

https://developer.huawei.com/consumer/cn/doc/harmonyos-faqs-V5/faqs-network-55-V5

我用Charles配置抓包,但是网络证书无法安装到真机上,这是什么原因啊?


更多关于HarmonyOS 鸿蒙Next用Charles如何配置抓包的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

方式一:
1.推送到公共目录的文件,需要手机 root 权限,可以通过 picker demo 将证书放入手机中,其中证书文件在 rawfile 目录下
2.证书保存后,使用 hdc shell aa start -a MainAbility -b com.ohos.certmanager 拉起证书模块进行加载
picker demo 参考如下代码:

import { fileIo, picker } from '@kit.CoreFileKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { http } from '@kit.NetworkKit';

@Entry @Component struct Index { @State uri: string = “”;

installCer() { const documentSaveOptions = new picker.DocumentSaveOptions(); // 创建文件管理器选项实例 const documentViewPicker = new picker.DocumentViewPicker(); // 创建文件选择器实例 documentViewPicker.save(documentSaveOptions).then((documentSaveResult: Array<string>) => { this.uri = documentSaveResult[0]; console.info(‘documentViewPicker.save to file succeed and uris are:’ + this.uri); }).catch((err: BusinessError) => { console.error(Invoke documentViewPicker.save failed, code is ${err.code}, message is ${err.message}); }) }

requestBaidu() { let req = http.createHttp(); req.on(“headersReceive”, (h) => { console.info('header: ’ + JSON.stringify(h)); }) req.request(https://www.baidu.com/); }

build() { Column() { // 调用 picker 创建证书文件 Button(‘安装证书’) .onClick(() => { this.installCer(); })

// 将本地(resource/rawfile/test.pem)证书写入手机 内部存储/download 中 Button(‘写入证书’) .onClick(async () => { let file = fileIo.openSync(this.uri, fileIo.OpenMode.READ_WRITE); let buf: Uint8Array = await getContext(this).resourceManager.getRawFileContent(‘test.pem’) // uint8buff 转 arraybuf let buffer: ArrayBuffer = buf.buffer.slice(0); try { let writeLen: number = fileIo.writeSync(file.fd, buffer); } catch (e) { console.info("txy " + JSON.stringify(e)) }

fileIo.closeSync(file); })

// 测试抓包 Button(‘测试抓包’) .onClick(() => { this.requestBaidu(); }) } } }

方式二:
真机不需要root也可以下载证书,有另一个方法:
前提:手机镜像要求:2.0.0.66(SP60DEVC00E66R4P1)及以上
一、将手机与PC连接在同一局域网下,手机连接WiFi时,点击代理设置(手动),设置代理IP,端口为Charles监听的端口,默认为8888,在步骤四的Proxy Settings中可以查看和修改;
二、设置代理,操作步骤:
1)点击 Proxy—>SSL Proxy Settings—>在Include添加 : 和 *:443
2)点击 Proxy—>Proxy Settings—>勾选Enable transparent HTTP proxying
三、 PC端Charles导出证书,点击 Help—>SSL Proxying—>Install Charles Root Certificate on a Mobile Device or Remote Browser
四、 导入系统根证书至手机:

通过手机浏览器下载charles提供的网址下载证书,在浏览器下载之后要另存到下载目录
下载证书时,链接需加上http://chls.pro/ssl,下载完需要另存到公共目录Download等
2) hdc shell aa start -a MainAbility -b com.ohos.certmanager 启动证书安装器
3) 选择从存储设备安装,选择指定pem证书
五、安装Charles证书到PC系统可信目录,操作步骤:
点击 Help—>SSL Proxying—>Install Charles Root Certificate—>安装证书—>选择证书存储路径为:受信任的根证书颁发机构
六、打开charles,开始抓包:

附:
一、鸿蒙单框架手机WiFi代理设置:
设置-WLAN中:
——>弹出搜索到的可用WIFI列表(未连接过的WiFi)
——>点击待连接WiFi,进入密码输入界面
——>弹出页内“代理”选择“手动”
——>代理服务器主机名填入PC端IP地址,端口号一般都填8888
——>点击连接

更多关于HarmonyOS 鸿蒙Next用Charles如何配置抓包的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next系统上使用Charles进行抓包配置,可以按照以下步骤操作:

  1. 安装Charles:首先,确保已在电脑上安装并启动了Charles抓包工具。

  2. 配置Charles

    • 打开Charles,进入“Proxy”菜单,选择“SSL Proxying Settings”。
    • 在弹出的窗口中,添加需要抓包的域名和端口(通常为443)。点击“Add”后,确保“Enable SSL Proxying”被勾选。
  3. 安装证书

    • 在鸿蒙设备上,访问Charles显示的IP地址和端口(通常为charlesproxy.local:8888),下载并安装Charles的根证书。
    • 安装过程中,系统可能会提示证书安装权限,按照提示给予即可。
  4. 配置设备网络

    • 将鸿蒙设备的Wi-Fi连接到与Charles运行在同一局域网内的网络。
    • 在设备Wi-Fi设置中,修改代理为手动,并输入Charles运行的电脑的IP地址和端口(默认8888)。
  5. 开始抓包

    • 回到Charles主界面,选择需要监控的域名或IP,开始捕获网络请求。

如果配置正确,Charles将能够捕获鸿蒙设备上发出的HTTP和HTTPS请求。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部