HarmonyOS 鸿蒙Next httpRequest.request 请求https接口ssl证书验证失败
HarmonyOS 鸿蒙Next httpRequest.request 请求https接口ssl证书验证失败
httpRequest.request 请求https接口ssl证书验证失败
问题现象
https接口httpRequest.request请求报错:“SSL peer certificate or SSH remote key was not OK”。
- httpRequest.request怎样进行证书验证。
- httpRequest.request能否忽略证书认证访问https接口。
解决措施
HTTPS证书是一种数字证书,这种证书的主要作用是保护网站安全性。HTTPS证书校验则是指在建立HTTPS连接时对证书进行校验,保证连接的安全性,使网站的安全性更高。
HTTPS校验主要包括以下几个步骤:
- 客户端向服务器发送HTTPS请求
- 服务器返回SSL证书
- 客户端对证书进行校验
- 如果验证通过,客户端和服务器之间就建立起了安全的HTTPS连接。
本题中的报错出现在第三步,即客户端对证书校验报错。
客户端对证书的校验验证SSL证书的四个方面:
- 检查SSL证书是否是由浏览器中“受信任的根证书颁发机构”颁发。
- 检查SSL证书中的证书吊销列表,检查证书是否被证书颁发机构吊销。
- 检查此SSL证书是否过期。
- 检查部署此SSL证书校验的网站域名和证书域名是否一致。
客户端如果没有对证书进行校验,就会导致中间人攻击,中间人攻击分两种:SSL劫持和SSL剥离。
SSL劫持原理:第三方攻击者会先把自己接到请求方和接收方之间,然后通过自己伪造的证书先模拟成接收方和请求方交换数据,然后再模拟自己为请求方与接收方进行数据交互。一般SSL劫持容易被用于使用者在自己的浏览器等地方安装了未被权威CA认证的证书,因此需要进行证书校验。
SSL劫持
SSL剥离通常发生在HTTP请求中,不过现在的网站大部分强制使用HTTPS访问网站,这里不再赘述。
问题1:开发者应对服务端的证书进行上述四个方面的检查,确认无误。若服务端证书是自定义的CA,即SSL证书不是由浏览器中“受信任的根证书颁发机构”颁发,可以通过使用httpRequest.request接口的HttpRequestOptions参数中的caPath设置自定义CA的路径,如果设置了此参数,系统将使用用户指定路径的CA证书,(开发者需保证该路径下CA证书的可访问性),否则将使用系统预设CA证书,系统预设CA证书位置:/etc/ssl/certs/cacert.pem。
问题2:客户端需要对证书进行验证,否则会导致中间人攻击。
参考链接
从rawfile复制到沙箱没有问题
请问如何从rawfile复制到沙箱?
针对HarmonyOS(鸿蒙)系统中httpRequest.request
请求HTTPS接口时SSL证书验证失败的问题,首先确认服务器SSL证书是否有效且被信任的CA签发。其次,检查客户端的SSL/TLS配置,确保支持服务器使用的SSL/TLS版本和加密算法。另外,更新鸿蒙系统的SDK和库到最新版本,以支持最新的安全协议和证书格式。
如果问题依旧没法解决请加我微信,我的微信是itying888。