HarmonyOS鸿蒙Next中axios请求https内网地址时无法正常连接,提示SSL peer certificate or SSH remote key was not OK
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
可能原因:无法校验服务器身份,有可能是证书过期了
处理步骤:检查证书有效性
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握手失败。
解决方法可以尝试以下步骤:
- 禁用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);
});
- 添加自定义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);
});
- 检查证书有效期和配置:确保内网服务器的SSL证书未过期,且配置正确,包括域名匹配、证书链完整等。
通过这些方法可以解决SSL证书验证失败的问题,确保axios能够正常请求HTTPS内网地址。
在HarmonyOS鸿蒙Next中使用axios请求HTTPS内网地址时遇到SSL证书问题,可能是由于内网使用的自签名证书不被系统信任。解决方法包括:
-
在内网环境中部署受信任的CA签发的SSL证书;
-
在axios配置中忽略SSL验证(仅限开发环境),通过设置
rejectUnauthorized: false
; -
将自签名证书添加到系统的信任证书列表中。
请确保生产环境中不使用忽略SSL验证的方法,以保证数据传输的安全性。