HarmonyOS 设置代理之后,文件上传接口会报证书错误,其他接口正常

2025-05-26 09:39:54

这个报错是CA证书无法与已知的受信任的CA匹配(未知_ca),需要将浏览器或应用程序配置为信任charies根证书。

参照下SSL代理步骤,查看是否配置的有问题

一、HarmonyOS端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证书到HarmonyOS系统可信目录,操作步骤: 点击 Help—>SSL Proxying—>Install Charles Root Certificate—>安装证书—>选择证书存储路径为:受信任的根证书颁发机构。

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

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

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

五、HarmonyOS App开发时,系统原生HTTP数据请求能力HttpRequestOptions参数设置。

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

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

六、将手机与电脑连接在同一局域网下,手机连接WiFi时,在输密码界面,把“代理”设置为手动,设置代理IP,端口为Charles监听的端口,在上述步骤四的Proxy Settings中可以查看和修改。

七、打开charles,开始抓包 将caPath设置为"",使用系统默认的证书,可以解决问题。

转自:https://ost.51cto.com/answer/30787

发表评论:

Powered by PHP 学习者(mail:517730729@qq.com)

原百度博客:http://hi.baidu.com/ssfnadn

备案号:闽ICP备17000564号-1

开源中国 PHPCHINA