HarmonyOS鸿蒙Next中请求报错2300060远程服务器SSL证书或SSH密钥不正确怎么忽略掉直接请求成功
HarmonyOS鸿蒙Next中请求报错2300060远程服务器SSL证书或SSH密钥不正确怎么忽略掉直接请求成功
2300060 远程服务器SSL证书或SSH密钥不正确
为了安全考虑,除特殊情况,一般不建议跳过SSL校验,如果必须跳过,可以参考以下方法忽略证书校验:
-
网络请求使用RCP (Remote Communication Kit),可以通过配置SecurityConfiguration中的RemoteValidation为
skip
跳过证书校验。可参考如下代码:import { rcp } from '[@kit](/user/kit).RemoteCommunicationKit'; import { BusinessError } from '[@kit](/user/kit).BasicServicesKit'; const session = rcp.createSession(); const request = new rcp.Request('https://xxx.xxx.xxx/xxx', 'GET'); request.configuration = { security: { remoteValidation: 'skip', // 'system' | 'skip' |CertificateAuthority | ValidationCallback。`system`表示使用系统CA验证远端服务器身份,值固定为`system`字符串,是未配置时的默认值。`skip`表示跳过验证远端服务器身份流程,值固定为`skip`字符串。 }, }; session.fetch(request).then((rep: rcp.Response) => { console.info(`Response succeeded: ${rep}`); }).catch((err: BusinessError) => { console.error(`Response err: Code is ${err.code}, message is ${err.message}`); });
-
网络请求使用Network Kit,可以设置RemoteValidation为’skip’(跳过SSL证书校验) (需要API18及以上才支持)。
-
网络请求使用Axios(Axios底层基于Network Kit实现),自API18开始可以通过RemoteValidation配置使用系统CA或跳过验证远程服务器CA,用法样例请参考ohos_axios。
更多关于HarmonyOS鸿蒙Next中请求报错2300060远程服务器SSL证书或SSH密钥不正确怎么忽略掉直接请求成功的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS Next中忽略SSL证书验证,可使用http
模块的setExtraOptions
方法配置SSLSocketFactory
。示例代码:
import http from '@ohos.net.http';
import { BusinessError } from '@ohos.base';
let httpRequest = http.createHttp();
httpRequest.setExtraOptions({
sslSocket: {
disabledVerify: true // 禁用证书验证
}
});
httpRequest.request(
"https://example.com",
(err: BusinessError, data: http.HttpResponse) => {
// 处理回调
}
);
注意:该方法仅适用于测试环境,正式发布需使用有效证书。
在HarmonyOS Next中遇到SSL证书校验错误(2300060)时,可以通过以下方式处理:
- 对于HttpURLConnection方式: 在创建连接后添加以下代码:
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
conn.setHostnameVerifier((hostname, session) -> true);
- 对于OkHttp方式:
OkHttpClient client = new OkHttpClient.Builder()
.hostnameVerifier((hostname, session) -> true)
.build();
注意:忽略SSL验证会降低安全性,建议仅用于开发测试环境。生产环境应确保使用有效的SSL证书。