HarmonyOS 鸿蒙Next用Charles如何配置抓包
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
方式一:
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进行抓包配置,可以按照以下步骤操作:
-
安装Charles:首先,确保已在电脑上安装并启动了Charles抓包工具。
-
配置Charles:
- 打开Charles,进入“Proxy”菜单,选择“SSL Proxying Settings”。
- 在弹出的窗口中,添加需要抓包的域名和端口(通常为443)。点击“Add”后,确保“Enable SSL Proxying”被勾选。
-
安装证书:
- 在鸿蒙设备上,访问Charles显示的IP地址和端口(通常为
charlesproxy.local:8888
),下载并安装Charles的根证书。 - 安装过程中,系统可能会提示证书安装权限,按照提示给予即可。
- 在鸿蒙设备上,访问Charles显示的IP地址和端口(通常为
-
配置设备网络:
- 将鸿蒙设备的Wi-Fi连接到与Charles运行在同一局域网内的网络。
- 在设备Wi-Fi设置中,修改代理为手动,并输入Charles运行的电脑的IP地址和端口(默认8888)。
-
开始抓包:
- 回到Charles主界面,选择需要监控的域名或IP,开始捕获网络请求。
如果配置正确,Charles将能够捕获鸿蒙设备上发出的HTTP和HTTPS请求。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html