HarmonyOS 鸿蒙Next Axios网络框架双向认证问题

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

HarmonyOS 鸿蒙Next Axios网络框架双向认证问题

Axios双向证书校验不成功,使用自签的cer格式证书报错,{“code”:2300060,“message”:“SSL peer certificate or SSH remote key was not OK”}。已经按照提供的demo进行了设置,我们提供下使用方式和证书,麻烦看下问题。

2 回复

根证书通过caPath配置,caPath的值是证书的沙箱路径; 客户端证书通过clientCert对象设置 并且检查证书有效性

1、更新服务器证书:如果服务器证书过期或者未被信任,需要更新服务器证书。

2、完整的证书链:确保服务器证书链完整,包括中间证书。

3、同步客户端和服务器时间:确保客户端和服务器时间同步

也可参考:

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

可检查下系统沙箱路径下是否存在对应证书内容,封装方式可参考如下:

createFile(filePath : string , buffer : ArrayBuffer | string){

getContext(this).area = 0

let context: Context = getContext(this);

const keyPemComponent = context.resourceManager.getRawFileContentSync('zx.cer')

let filesDir: string = context.filesDir

filePath = filesDir + "/testCer.pem";

let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);

fs.writeSync(file.fd, keyPemComponent.buffer);

fs.fsyncSync(file.fd);

fs.closeSync(file);

}

更多关于HarmonyOS 鸿蒙Next Axios网络框架双向认证问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


针对HarmonyOS鸿蒙Next Axios网络框架的双向认证问题,这里提供一个直接的解决方案。

在鸿蒙系统中使用Axios进行网络请求时,若要实现双向认证,需要配置HTTPS请求并加载客户端证书和私钥。双向认证要求服务器和客户端都持有证书,通过互相验证来确保通信的安全性。

  1. 准备证书:确保你拥有有效的客户端证书(.pem或.crt文件)和私钥(.key文件)。

  2. 配置Axios:在Axios的请求配置中,设置httpsAgent选项。这个选项允许你自定义HTTPS请求的行为,包括加载证书。

    const https = require('https');
    const fs = require('fs');
    
    const options = {
      key: fs.readFileSync('path/to/client-key.key'),
      cert: fs.readFileSync('path/to/client-cert.pem')
    };
    
    const agent = new https.Agent(options);
    
    axios.get('https://example.com/api', { httpsAgent: agent })
      .then(response => {
        console.log(response.data);
      })
      .catch(error => {
        console.error(error);
      });
    

上述代码段展示了如何在Axios请求中配置HTTPS代理,并加载客户端证书和私钥以实现双向认证。请根据你的实际情况调整文件路径和请求URL。

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

回到顶部