HarmonyOS 鸿蒙Next在应用中使用openssl时系统SSL证书的几个疑问解答
HarmonyOS 鸿蒙Next在应用中使用openssl时系统SSL证书的几个疑问解答
Q1: 鸿蒙系统中是否自带SSL证书? 鸿蒙系统自带了SSL的pem证书。
Q2: 鸿蒙系统中SSL证书的路径是否固定?具体路径是什么?
鸿蒙系统中的证书路径是固定的,当前路径为: /system/etc/ssl/certs/cacert.pem
Q3: 使用过程中如何判断错误是因为SSL证书引起的? 在使用OpenSSL时,若遇到SSL/TLS连接错误,可通过以下方法判断是否由SSL证书问题引起:
- 查看错误日志 OpenSSL中证书相关错误关键词有以下几个:
- unable to get local issuer certificate (缺少中间CA证书)
- certificate has expired (证书过期)
- self signed certificate (自签名证书不受信任)
- hostname mismatch (域名不匹配)
- unable to verify the first certificate (证书链不完整)
- 手动验证证书文件 当前系统提供的SSL证书只涉及到有效性,通过交叉编译出来的openssl可执行程序进行查看:
openssl x509 -in /system/etc/ssl/certs/cacert.pem -noout -dates # 执行命令
notBefore=Sep 1 12:00:00 1998 GMT # 输出的信息
notAfter=Jan 28 12:00:00 2028 GMT
- 通过代码获取证书的相关信息
...
SSL *ssl = ...; // SSL连接对象
long verify_result = SSL_get_verify_result(ssl);
if (verify_result != X509_V_OK) {
const char *error = X509_verify_cert_error_string(verify_result);
printf("证书验证失败: %s (错误码 %ld)\n", error, verify_result);
}
...
常见的SSL证书相关错误码如下:
X509_V_ERR_CERT_HAS_EXPIRED(10)
: 证书过期X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT(18)
: 自签名证书X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY(20)
: 缺少中间CA证书X509_V_ERR_HOSTNAME_MISMATCH(62)
: 域名不匹配
更多关于HarmonyOS 鸿蒙Next在应用中使用openssl时系统SSL证书的几个疑问解答的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在鸿蒙Next中使用OpenSSL时,系统SSL证书的路径为/system/etc/security/cacerts/
。鸿蒙Next采用BoringSSL作为默认SSL库,但兼容OpenSSL API。系统证书默认由华为CA机构签发,应用可通过X509TrustManager
接口管理证书验证。开发者需在config.json
中声明ohos.permission.INSTALL_CERTIFICATE
权限才能访问证书存储。鸿蒙Next不支持直接修改系统证书库,但允许应用通过SecurityComponent
接口添加临时信任证书。
更多关于HarmonyOS 鸿蒙Next在应用中使用openssl时系统SSL证书的几个疑问解答的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
关于HarmonyOS Next中使用OpenSSL和系统SSL证书的几个关键点:
-
证书路径确认:系统确实预置了SSL证书,路径为
/system/etc/ssl/certs/cacert.pem
,这是一个固定位置。需要注意的是,在HarmonyOS Next中访问系统路径可能需要申请相应权限。 -
证书验证方法:
- 推荐使用OpenSSL的
SSL_get_verify_result()
函数获取验证结果 - 常见错误码如证书过期(10)、自签名(18)、缺少中间CA(20)等都有明确定义
- 可通过
X509_verify_cert_error_string()
直接获取可读的错误描述
- 调试建议:
- 可以先通过命令行工具验证证书有效性
- 在代码中建议添加详细的错误处理逻辑
- 注意系统证书可能会随版本更新而变化
- 特殊场景处理:
- 如需使用自定义证书,建议单独维护证书文件
- 对证书有效期敏感的场合需要定期检查
这些信息应该能帮助开发者正确处理HarmonyOS Next中的SSL证书相关问题。