本文原创发布在华为开发者社区

介绍

该示例是一个连接网络的Demo,通过socket获取远端证书,在网络通信中,利用套接字(socket)技术来获取与之建立连接的远端服务器的数字证书。

构建服务端证书校验源码链接

效果预览

请添加链接描述

使用说明

打开应用后,点击“点击连接”按钮,获取与之建立连接的远端服务器的数字证书,在后台打印数据。

实现思路

  • 获取本地ip

    function getLocalIp() {
    const ipInfo = wifiManager.getIpInfo();
    const localIp = int2ip(ipInfo.ipAddress);
    hilog.info(0x0000, tag, 'ipInfo : ' + JSON.stringify(ipInfo));
    hilog.info(0x0000, tag, 'localHost : ' + localIp);
    return localIp;
    }
  • 首先通过bind方法获取TLSSocket连接的对端地址,然后使用connect方法通过TLSSocket连接发送数据,最后使用getRemoteCertificate方法返回表示对等证书的对象。

    tlsSocket.bind({ address: localIp, family: 1, port: 0 })
    .then(() => {
      hilog.info(0x0000, tag, 'tlsSocket bind success');
      tlsSocket.connect(tlsConnectOptions)
        .then(() => {
          hilog.info(0x0000, tag, 'tlsSocket connect success');
          tlsSocket.getRemoteCertificate((err: BusinessError, data: socket.X509CertRawData) => {
            ...
          });
        })
        ...
    })

鸿蒙场景化代码
1 声望0 粉丝