HarmonyOS鸿蒙Next中服务器自定义ca证书的问题

HarmonyOS鸿蒙Next中服务器自定义ca证书的问题 服务器使用自定义的ca证书,导致原来的接口、图片、视频等内容都无法正常的显示和播放,想问下有无全局配置自定义ca证书的功能,或者这种情况的处理方法?

6 回复

【解决方案】

开发者您好,您可参考以下方案完成证书预置:

  1. 在resources/base/profile目录下创建network_config.json文件。参考配置信任应用管理的CA证书
  2. 在resources下创建resfile文件夹,并将自定证书放入该文件夹。 注意:证书是预置路径,不能动态更新。如果要支持动态更新可以使用rcp
  3. 编译安装完成之后,进行验证。
    hdc shell
    cd /data/app/el1/100/base/applicationFolder
    find -name "certName" // 根据证书名称在设备中查找,返回所配置的证书表示配置成功
    

更多关于HarmonyOS鸿蒙Next中服务器自定义ca证书的问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


你好,可以的。如果应用服务器使用企业内部自建的CA证书,可以在应用内预置这些证书,并配置信任。

参考文档:配置信任应用管理的CA证书

这个 network_config.json 文件需要在哪个地方进行配置,不太了解,

{
  "network_config": {
    "interface": "eth0",
    "ip_address": "192.168.1.100",
    "subnet_mask": "255.255.255.0",
    "gateway": "192.168.1.1",
    "dns_servers": ["8.8.8.8", "8.8.4.4"]
  }
}

鸿蒙Next中服务器自定义CA证书需使用系统证书存储。应用可通过security.certManager API导入证书,需用户授权。证书格式支持PEM/DER,需符合X.509标准。网络请求框架会自动验证证书链,无需应用层额外处理。若证书不受信任,连接将失败。

在HarmonyOS Next中,处理自定义CA证书的问题,目前系统并未提供全局配置自定义根证书的直接功能。这主要是出于安全考虑,避免不安全的证书被轻易信任。

针对你遇到的服务器使用自定义CA证书导致资源无法加载的问题,可以通过以下技术方案解决:

1. 应用内证书校验 这是推荐的主流方案。你需要在应用代码中,针对特定的网络请求(如使用HttpURLConnectionOkHttp等库),实现自定义的TrustManagerSSLSocketFactory。在这个自定义的校验逻辑中,将你的自定义CA证书(PEM或DER格式)加载到应用的信任库中,从而让应用信任该证书签发的服务器证书。

核心步骤包括:

  • 将CA证书文件放入应用的resources/rawfile/目录。
  • 在发起网络请求前,读取证书并创建自定义的SSLContext
  • 将该SSLContext配置给你的网络客户端。

这种方式将证书信任范围严格限定在你的应用内,不影响设备全局,安全性更高。

2. 开发设备安装证书(仅限开发调试) 在开发阶段,可以将自定义CA证书文件(.cer.crt格式)放入设备的/data/misc/ca-certificates/目录(需要root或使用hdc调试工具推送)。之后,系统会将其视为用户证书进行管理。请注意,这通常需要系统签名权限或在高权限调试模式下进行,不适合普通应用在上线后使用。

总结与建议: 对于正式发布的应用,应采用第一种“应用内证书校验”方案。你需要修改网络请求部分的代码,显式地加载并信任你的特定CA证书。这样可以精准解决问题,且符合HarmonyOS Next的安全设计原则。请根据你使用的网络库,查阅其如何配置自定义SSL上下文的相关文档进行实现。

回到顶部