HarmonyOS 怎么安装证书、抓包

HarmonyOS
2024-12-23 17:15:34
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
put_get

当前网络模块已支持适配Charles工具抓包,配置方式如下:

1、导出证书点击 Help—>SSL Proxying—>Save Charles Root Certificate。导入证书到手机执行命令参考如下:

hdc file send charles.pem(pc上证书路径) /storage/media/100/local/files/Download(手机指定路径)
  • 1.

2、连接手机后执行命令启动证书安装界面:

hdc shell aa start -a MainAbility -b com.ohos.certmanager 
  • 1.

3、选择从存储设备安装,选择指定pem证书。

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

5、设置代理,点击 Proxy—>SSL Proxy Settings—>在Include添加 : 和 *:443 2)点击Proxy—>Proxy Settings—>勾选Enable transparent HTTP proxying。

6、Wifi代理设置,将手机与电脑同一局域网下连接,手机连接WiFi时,点击代理设置为手动,修改设置代理IP,端口为Charles监听的端口,默认为8888可在上一步Proxy Settings中查看和修改。

7、应用抓取http包,App开发时HTTP请求HttpRequestOptions参数设置,可参考文档设置usingProxy为true,表示使用HTTP代理(该字段默认为false 不使用代理),设置caPath(可根据环境使用设置,默认使用系统预设CA)。

http参数设置可参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-http-V5

工具配置可参考博客:https://juejin.cn/post/6844904182588112904

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.huawei.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("tag " + JSON.stringify(e))
        }
        fileIo.closeSync(file);
      })
      // 测试抓包
      Button('测试抓包').onClick(() => {
        this.requestBaidu();
      })
    }
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
分享
微博
QQ
微信
回复
2024-12-23 20:30:43


相关问题
HarmonyOS 怎么
606浏览 • 1回复 待解决
HarmonyOS Charles 步骤
2745浏览 • 1回复 待解决
发布证书打包的hap安装出错
1408浏览 • 1回复 待解决
HarmonyOS 模拟器问题
827浏览 • 1回复 待解决
HarmonyOS如何实现使用 Charles
4025浏览 • 1回复 待解决
charles手机端设置
1036浏览 • 1回复 待解决
如何使用Charles工具
3253浏览 • 1回复 待解决
网络请求以及日志
1652浏览 • 1回复 待解决
webview如何实现charles
1950浏览 • 1回复 待解决
HarmonyOS 能使用Charles代理
814浏览 • 1回复 待解决
HarmonyOS 使用Charles不到https的
1051浏览 • 1回复 待解决
HarmonyOS Mac上如何使用Charles
890浏览 • 1回复 待解决
Charles工具-App开发指导
2496浏览 • 1回复 待解决
Charles 网络长按无法修改
1330浏览 • 1回复 待解决
应用,求解决方案
2927浏览 • 1回复 待解决
HarmonyOS 外部应用怎么trace
546浏览 • 1回复 待解决
HarmonyOS WebView如何在模拟器
758浏览 • 1回复 待解决