鸿蒙Next中SSL证书如何配置主机名

在鸿蒙Next系统中配置SSL证书时,如何正确设置主机名?我按照官方文档操作,但证书验证始终失败,提示主机名不匹配。请问具体需要修改哪些配置文件?主机名的格式是否有特殊要求(例如是否需要包含端口或通配符)?能否提供一个完整的配置示例?

2 回复

鸿蒙Next配置SSL证书主机名?简单!在NetworkSecurityConfig里用domain-config标签,加上cleartextTrafficPermitted="false",再嵌套domain标签写上你的主机名就行。代码一敲,安全到家!😎

更多关于鸿蒙Next中SSL证书如何配置主机名的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在鸿蒙Next(HarmonyOS NEXT)中配置SSL证书的主机名,通常涉及在网络安全配置中指定证书验证规则。以下是步骤和示例代码:

  1. 准备SSL证书:确保证书文件(如.crt.pem)已放置在项目的resources/rawfile目录下。

  2. 配置网络权限:在module.json5文件中添加网络权限:

    {
      "module": {
        "requestPermissions": [
          {
            "name": "ohos.permission.INTERNET"
          }
        ]
      }
    }
    
  3. 使用http模块进行SSL配置:在代码中,通过http模块创建HTTP请求,并设置SSL证书验证选项,包括主机名验证。

    • 示例代码(以ArkTS为例):
      import http from '@ohos.net.http';
      import { BusinessError } from '@ohos.base';
      
      // 创建HTTP请求
      let httpRequest = http.createHttp();
      
      // 配置SSL选项,包括主机名验证
      let sslOptions: http.HttpSslOptions = {
        // 指定证书文件路径(从rawfile加载)
        cert: 'resource://rawfile/your_cert.crt', // 替换为你的证书路径
        // 设置主机名验证规则:默认严格验证,或自定义
        hostnameVerification: true, // 启用主机名验证(默认行为)
        // 如果需要自定义主机名,可设置如下(但通常不建议禁用验证):
        // hostnameVerification: false, // 禁用验证(不安全,仅测试用)
      };
      
      // 发起HTTPS请求
      let url = 'https://your-server.com'; // 替换为你的服务器地址
      httpRequest.request(
        url,
        {
          method: http.RequestMethod.GET,
          sslOptions: sslOptions, // 应用SSL配置
        },
        (err: BusinessError, data: http.HttpResponse) => {
          if (err) {
            console.error('Request failed:', err.code, err.message);
            return;
          }
          console.log('Response:', data.result);
        }
      );
      

关键点

  • 主机名验证:默认情况下,系统会验证服务器证书中的主机名与请求URL是否匹配。设置hostnameVerification: true(默认)启用此功能;如果设为false,则跳过验证(仅用于测试环境,生产环境不推荐)。
  • 证书路径:使用resource://rawfile/前缀引用项目中的证书文件。
  • 错误处理:如果主机名不匹配或证书无效,请求会失败并返回错误码(如2300001表示SSL错误)。

注意事项

  • 确保证书有效且与服务器主机名一致,避免安全风险。
  • 在真机测试时,证书需由受信任的CA签发,或使用系统允许的自签名证书。

通过以上步骤,你可以在鸿蒙Next中正确配置SSL证书的主机名验证。如果有具体错误,请检查证书路径和主机名设置。

回到顶部