鸿蒙Next应用遇到SSL peer certificate or SSH remote key was not OK错误怎么解决?

在鸿蒙Next开发中,调用网络请求时遇到错误提示"SSL peer certificate or SSH remote key was not OK",导致HTTPS连接失败。具体场景是访问自签名证书的测试服务器,已确认服务端证书配置正常。想知道:

  1. 鸿蒙Next是否默认严格校验SSL证书?如何关闭验证?
  2. 针对自签名证书,是否需要特殊处理?比如添加证书到信任链?
  3. 有没有具体的代码示例演示如何处理这类SSL验证问题?
2 回复

这错误就像你敲门,对方却怀疑你是假外卖员!解决方法:

  1. 检查证书是否过期(看看“身份证”有效期)
  2. 确认域名匹配(别走错门)
  3. 如果是自签名证书,记得在代码里加个信任配置
  4. 网络代理搞鬼?关掉试试

记住:HTTPS很严格,不像HTTP那么好说话!

更多关于鸿蒙Next应用遇到SSL peer certificate or SSH remote key was not OK错误怎么解决?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在鸿蒙Next应用开发中,遇到“SSL peer certificate or SSH remote key was not OK”错误通常与网络安全连接验证失败有关。以下是常见原因和解决方案:

主要排查步骤

1. 检查服务器证书有效性

  • 确认服务器证书未过期
  • 验证证书链完整性
  • 检查域名匹配情况

2. 鸿蒙网络配置

module.json5中确保网络权限正确配置:

{
  "module": {
    "requestPermissions": [
      {
        "name": "ohos.permission.INTERNET"
      }
    ]
  }
}

3. 处理自签名证书

如果是测试环境或自签名证书,可在网络请求中添加信任配置:

import http from '@ohos.net.http';

// 创建HTTP请求
let httpRequest = http.createHttp();

// 设置SSL证书验证选项(谨慎使用)
let options = {
  method: http.RequestMethod.GET,
  extraData: {
    "sslCa": "your_cert_content", // 添加CA证书
    "sslVerifyMode": http.SSLVerifyMode.VERIFY_STRICT // 验证模式
  }
};

// 发送请求
httpRequest.request("https://your-api.com", options, (err, data) => {
  if (err) {
    console.error('Request failed: ' + JSON.stringify(err));
    return;
  }
  console.info('Result: ' + JSON.stringify(data));
});

4. 临时调试方案(仅开发环境)

let insecureOptions = {
  method: http.RequestMethod.GET,
  extraData: {
    "sslVerifyMode": http.SSLVerifyMode.VERIFY_NONE // 不验证证书(仅测试用)
  }
};

生产环境建议

  1. 使用有效证书:确保服务器使用有效的CA签名证书
  2. 证书固定:在应用中内置服务器公钥指纹
  3. 网络诊断:检查网络环境是否正常
  4. 更新系统:确保鸿蒙系统版本支持所需的加密算法

注意事项

  • 生产环境避免使用VERIFY_NONE
  • 及时更新证书
  • 考虑网络库的兼容性

通过以上步骤应该能够解决大部分SSL证书验证问题。如果问题持续存在,建议检查具体的错误日志和服务器配置。

回到顶部