HarmonyOS 鸿蒙Next 设置代理之后,文件上传接口会报证书错误,其他接口正常?#HarmonyOS最强问答官#
HarmonyOS 鸿蒙Next 设置代理之后,文件上传接口会报证书错误,其他接口正常?#HarmonyOS最强问答官#
这个报错是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证书到PC系统可信目录,操作步骤: 点击 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,也需要手动设置。
六、将手机与PC连接在同一局域网下,手机连接WiFi时,在输密码界面,把“代理”设置为手动,设置代理IP,端口为Charles监听的端口,在上述步骤四的Proxy Settings中可以查看和修改。
七、打开charles,开始抓包 将caPath设置为"",使用系统默认的证书,可以解决问题。
针对HarmonyOS鸿蒙Next设置代理后文件上传接口报证书错误的问题,这通常与SSL证书验证有关。以下是一些可能的解决方案:
- 检查证书有效性:确保远程服务器的SSL证书是有效的,并且与请求的域名匹配。你可以使用在线工具检查证书的有效性。
- 代理服务器配置:检查代理服务器的配置,确保它正确转发了SSL证书链。有时代理服务器可能会修改或丢弃证书信息,导致客户端验证失败。
- 系统信任设置:在鸿蒙系统中,检查是否已将远程服务器的证书或其颁发机构添加到受信任的证书列表中。
- 代码实现:检查文件上传接口的网络请求代码,确保使用了正确的证书验证设置。如果使用的是HTTP库或框架,请查阅其文档以了解如何配置SSL证书验证。
如果以上方法均无法解决问题,建议联系鸿蒙系统的开发者支持或访问官网客服寻求帮助。官网地址是:https://www.itying.com/category-93-b0.html 。