HarmonyOS鸿蒙Next中axios请求https内网地址时无法正常连接,提示SSL peer certificate or SSH remote key was not OK

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

HarmonyOS鸿蒙Next中axios请求https内网地址时无法正常连接,提示SSL peer certificate or SSH remote key was not OK 使用系统浏览器访问地址,可以访问。通过api请求该地址时无法,报错:SSL peer certificate or SSH remote key was not OK

3 回复

可能原因:无法校验服务器身份,有可能是证书过期了
处理步骤:检查证书有效性

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

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

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

在使用axios库进行HTTPS请求时,如果在鸿蒙系统中无法正常连接到内网地址,而在Android系统中没有出现这个问题,可能有以下几个原因:

1.网络配置差异:

鸿蒙系统和Android系统在网络配置上可能存在差异。例如,鸿蒙系统可能对内网地址的处理方式与Android系统不同,导致在某些情况下无法正常连接。

2.证书验证问题:

HTTPS请求需要进行证书验证,如果内网地址的证书不被鸿蒙系统信任,可能会导致连接失败。而Android系统可能默认信任某些证书,因此不会出现这个问题。

3.系统API差异:

鸿蒙系统和Android系统的网络API可能存在差异,导致在处理内网HTTPS请求时表现不同。例如,鸿蒙系统的网络API可能对内网地址的处理方式更为严格,需要进行额外配置。

更多关于HarmonyOS鸿蒙Next中axios请求https内网地址时无法正常连接,提示SSL peer certificate or SSH remote key was not OK的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,使用axios请求HTTPS内网地址时出现“SSL peer certificate or SSH remote key was not OK”错误,通常是由于SSL证书验证失败导致的。内网环境中使用的自签名证书或私有CA签发的证书可能未被系统信任,或者证书链不完整,导致SSL握手失败。

解决方法可以尝试以下步骤:

  1. 禁用SSL验证:在axios请求中配置rejectUnauthorized: false,禁用SSL证书验证。这种方法适用于测试环境,但不建议在生产环境中使用,因为会降低安全性。
const axios = require('axios');
axios.get('https://your-internal-url', {
  httpsAgent: new https.Agent({  
    rejectUnauthorized: false
  })
}).then(response => {
  console.log(response.data);
}).catch(error => {
  console.error(error);
});
  1. 添加自定义CA证书:如果内网使用的是自签名证书或私有CA签发的证书,可以将该证书添加到系统的信任列表中,或者在axios请求中指定自定义的CA证书。
const https = require('https');
const fs = require('fs');
const axios = require('axios');

const caCert = fs.readFileSync('/path/to/your/ca-cert.pem');

axios.get('https://your-internal-url', {
  httpsAgent: new https.Agent({  
    ca: caCert
  })
}).then(response => {
  console.log(response.data);
}).catch(error => {
  console.error(error);
});
  1. 检查证书有效期和配置:确保内网服务器的SSL证书未过期,且配置正确,包括域名匹配、证书链完整等。

通过这些方法可以解决SSL证书验证失败的问题,确保axios能够正常请求HTTPS内网地址。

在HarmonyOS鸿蒙Next中使用axios请求HTTPS内网地址时遇到SSL证书问题,可能是由于内网使用的自签名证书不被系统信任。解决方法包括:

  1. 在内网环境中部署受信任的CA签发的SSL证书;

  2. 在axios配置中忽略SSL验证(仅限开发环境),通过设置rejectUnauthorized: false

  3. 将自签名证书添加到系统的信任证书列表中。

请确保生产环境中不使用忽略SSL验证的方法,以保证数据传输的安全性。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!