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);
        }
      }
    })
  })
}
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();
  }
}
3、报错信息 Rcp err: Code is 1007900058, message is Problem with the local SSL certificate
        HarmonyOS
      
        赞
        
 收藏 0
 回答 1
 
        待解决
        
相关问题
 HarmonyOS 远场通信服务与网络服务该如何选择 
1271浏览  • 1回复 待解决
HarmonyOS 证书链校验器报19030001错误 
1164浏览  • 1回复 待解决
HarmonyOS怎么校验服务器SSL证书状态? 
4371浏览  • 1回复 待解决
#鸿蒙通关秘籍# 如何在HarmonyOS中通过自签名证书避免HTTPS请求的证书校验错误? 
1021浏览  • 0回复 待解决
HarmonyOS axios如何忽略证书校验 
1194浏览  • 1回复 待解决
HarmonyOS 如何实现请求的证书固定或者是单项校验服务端证书的功能 
1066浏览  • 1回复 待解决
HarmonyOS  http请求配置双向认证证书 
1204浏览  • 1回复 待解决
http请求证书校验实现 
1535浏览  • 1回复 待解决
HarmonyOS 网络请求跳过ssl证书校验 
2126浏览  • 1回复 待解决
HarmonyOS 如何忽略掉https证书校验 
1107浏览  • 1回复 待解决
HarmonyOS 元服务申请证书 
1235浏览  • 1回复 待解决
#鸿蒙通关秘籍#如何进行自签名证书请求时跳过证书校验 
2298浏览  • 1回复 待解决
HarmonyOS webview需要禁用SSL证书校验的接口 
1387浏览  • 1回复 待解决
HarmonyOS  HTTP数据请求中如何绕过证书校验 
1210浏览  • 1回复 待解决
HarmonyOS  服务端证书验证和服务端CA证书验证 
1342浏览  • 1回复 待解决
APP与Server端进行HTTPS通信,服务器端证书为自签名证书,APP如何进行TLS验证Server端证书? 
1601浏览  • 1回复 待解决
HarmonyOS  无法安装crt格式的证书 
2766浏览  • 1回复 待解决
在IPC Kit(进程间通信服务)提供哪些通信模式?是否支持同步/异步通信? 
553浏览  • 0回复 待解决
@ohos.net.http如何校验服务器证书?类似X509TrustManager 
1664浏览  • 1回复 待解决
HarmonyOS  webview设置了忽略证书,img标签 请求图片报证书错误 
893浏览  • 1回复 待解决
HarmonyOS TLSSocket 单向认证,ca证书错误 
1337浏览  • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中将远场通信RCP请求模块化封装以简化网络请求? 
2410浏览  • 1回复 待解决
HarmonyOS 网络请求是否支持自签名证书的校验 
1351浏览  • 1回复 待解决
使用OH_NetStack_VerifyCertification接口如何校验叶证书 
1143浏览  • 1回复 待解决





















对于crt格式的证书文件,rcp请求中除了传入content证书内容,还需要传入key字段即证书对应的密钥文件地址如key: “/path/dir/”,请传入必要字段后再次尝试。
可参考以下示例调用saveFile函数把raw路径下的文件发到手机相关路径下,再配置key: filesDir + ‘/client.key’:
完整的demo示例请参考如下代码: