HarmonyOS 远场通信服务双向证书校验时报证书格式错误
1、读取证书dck.crt,再通过x509Cert.getPublicKey获取证书内容,转换成string格式
startTLSNetConnect() {
this.context.resourceManager.getRawFileContent("dck.crt").then((value: Uint8Array) => {
let encodingBlob: cert.EncodingBlob = {
data: value,
// 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER
encodingFormat: cert.EncodingFormat.FORMAT_PEM
};
cert.createX509Cert(encodingBlob, (error, x509Cert) => {
if (error) {
console.error('createX509Cert failed, errCode: ' + error.code + ', errMsg: ' + error.message);
} else {
console.log('createX509Cert success');
try {
let pubKey = x509Cert.getPublicKey();
let base64 = new util.Base64Helper();
let pubKeyContent = base64.encodeToStringSync(pubKey.getEncoded().data)
TLSNetWorkManager.getInstance().registerAction(pubKeyContent)
} catch (error) {
let e: BusinessError = error as BusinessError;
console.error('getPublicKey failed, errCode: ' + e.code + ', errMsg: ' + e.message);
}
}
})
})
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
2、将转换成string格式的证书内容传入rcp,执行后报错
async registerAction(content: string){
console.log("请求开始")
const session = rcp.createSession();
const HOST = "https://dck.gdota.club:2626/appsvr/registerSdk"
try {
const request = new rcp.Request(HOST, 'POST');
request.headers = {
'Content-Type': 'application/json'
}
request.content = `{"cywallid":"harmonyos3-f42f-4585-9bdb-69a99d6aa0e5","pubkey":"123456","token":"token-owner-01"}`
request.configuration = {
tracing: {
infoToCollect: {
textual: true
}
},
security: {
tlsOptions: tlsOption,
certificate:{
content:content,
type: 'PEM',
key: 'pubkey',
keyPassword: '123456'
}
}
};
const resp = await session.fetch(request);
console.log(`resp:${resp}`)
} catch (error) {
console.error(`Rcp err: Code is ${error.code}, message is ${error.data}`);
session.close();
}
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
3、报错信息 Rcp err: Code is 1007900058, message is Problem with the local SSL certificate
HarmonyOS
赞
收藏 0
回答 1
相关问题
HarmonyOS 远场通信服务与网络服务该如何选择
824浏览 • 1回复 待解决
HarmonyOS 证书链校验器报19030001错误
835浏览 • 1回复 待解决
HarmonyOS怎么校验服务器SSL证书状态?
3719浏览 • 1回复 待解决
#鸿蒙通关秘籍# 如何在HarmonyOS中通过自签名证书避免HTTPS请求的证书校验错误?
739浏览 • 0回复 待解决
HarmonyOS axios如何忽略证书校验
707浏览 • 1回复 待解决
HarmonyOS 如何实现请求的证书固定或者是单项校验服务端证书的功能
699浏览 • 1回复 待解决
http请求证书校验实现
1252浏览 • 1回复 待解决
HarmonyOS 网络请求跳过ssl证书校验
1124浏览 • 1回复 待解决
HarmonyOS 如何忽略掉https证书校验
624浏览 • 1回复 待解决
HarmonyOS http请求配置双向认证证书
868浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何进行自签名证书请求时跳过证书校验
1176浏览 • 1回复 待解决
HarmonyOS 元服务申请证书
859浏览 • 1回复 待解决
HarmonyOS HTTP数据请求中如何绕过证书校验
879浏览 • 1回复 待解决
HarmonyOS webview需要禁用SSL证书校验的接口
767浏览 • 1回复 待解决
HarmonyOS 服务端证书验证和服务端CA证书验证
881浏览 • 1回复 待解决
APP与Server端进行HTTPS通信,服务器端证书为自签名证书,APP如何进行TLS验证Server端证书?
1116浏览 • 1回复 待解决
HarmonyOS webview设置了忽略证书,img标签 请求图片报证书错误
625浏览 • 1回复 待解决
@ohos.net.http如何校验服务器证书?类似X509TrustManager
1381浏览 • 1回复 待解决
HarmonyOS 无法安装crt格式的证书
1801浏览 • 1回复 待解决
HarmonyOS TLSSocket 单向认证,ca证书错误
863浏览 • 1回复 待解决
在IPC Kit(进程间通信服务)提供哪些通信模式?是否支持同步/异步通信?
230浏览 • 0回复 待解决
使用OH_NetStack_VerifyCertification接口如何校验叶证书
870浏览 • 1回复 待解决
HarmonyOS 网络请求是否支持自签名证书的校验
900浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中将远场通信RCP请求模块化封装以简化网络请求?
1485浏览 • 1回复 待解决
对于crt格式的证书文件,rcp请求中除了传入content证书内容,还需要传入key字段即证书对应的密钥文件地址如key: “/path/dir/”,请传入必要字段后再次尝试。
可参考以下示例调用saveFile函数把raw路径下的文件发到手机相关路径下,再配置key: filesDir + ‘/client.key’:
完整的demo示例请参考如下代码: