使用证书鉴权建立MQTT连接
使用证书进行连接
物联网核心套件支持 x.509 证书方式进行双向鉴权。在创建设备时,若选择「证书认证」方式,则会下载到一个包含证书的文本文件,且证书为 PEM 格式。
各接入通道使用的服务端根证书及连接端口如下:
| 接入通道 | 服务端根证书 | 连接端口 |
|---|---|---|
| GlobalSign 服务证书通道(TLS) | GlobalSign Root R46(新版)或 GlobalSign Root R3(旧版) | 1884 |
| 自签名服务证书通道(TLS) | IoTCore ECDSA Root CA | 1887 |
| 国密服务证书通道(TLCP) | IoT Core TLCP 根证书 | 1888 |
证书认证(RSA算法)
1、设备证书
-----BEGIN CERTIFICATE----- 和 -----END CERTIFICATE----- 起止的部分为设备证书内容,可将此部分单独保存或在代码中直接粘贴,作为设备证书使用。

2、设备私钥
----------BEGIN RSA PRIVATE KEY---------- 和 -----END RSA PRIVATE KEY----- 起止的部分为设备私钥,可将此部分单独保存或在代码中直接粘贴,作为设备私钥使用。

3、服务端根证
物联网核心套件 IoT Core 支持 SSL/TLS 加密传输方式,保障用户的数据传输安全。
IoT Core 支持以下两种服务端证书通道。客户端需使用与接入通道匹配的根证书校验服务器身份。若运行环境中未内置相应根证书,需先下载根证书文件,并在模拟器客户端或代码中指定文件的存放路径。
GlobalSign 服务证书通道
该通道使用国际可信证书颁发机构 GlobalSign 签发的服务端证书,客户端需通过 1884 端口建立 TLS 连接。
重要:旧版 GlobalSign Root R3 根证书将于 2029 年 3 月 18 日到期。证书到期失效后,将无法再用于校验服务器,依赖该根证书的客户端将无法正常建立 TLS 连接。现已提供新版 GlobalSign Root R46 根证书,请仍使用旧版根证书的客户端尽快完成更新;使用该通道的新增连接请直接使用新版根证书。
| 根证书 | 有效期至 | 证书文件 | 下载 |
|---|---|---|---|
| 新版 GlobalSign Root R46(推荐) | 2046 年 3 月 20 日 | globalsign-root-r46.pem |
下载新版根证书 |
| 旧版 GlobalSign Root R3(请尽快更新) | 2029 年 3 月 18 日 | GlobalSign.cer |
下载旧版根证书(解压缩后使用) |
根证书信息可参见 GlobalSign 官方说明。
自签名服务证书通道
该通道使用 IoT Core 平台提供的自签名根证书,客户端需通过 1887 端口建立 TLS 连接。客户端需下载并配置信任该根证书,以校验该通道的服务器身份。
根证书文件为 iotcore-ecdsa-root-ca.crt,证书名称为 IoTCore ECDSA Root CA,有效期至 2056 年 10 月 19 日。
点击 下载自签名通道根证书,下载后使用 iotcore-ecdsa-root-ca.crt 文件。
注意:因证书均存在有效期限制,请务必保证设备具备更新信任列表的能力。如遇切换,我们将至少提前30天告知用户。
连接示例
此例中,我们使用 MQTT.fx 这个 MQTT 客户端进行模拟连接。
首先,将上述1中描述的设备证书内容复制并另存为 client_cert ,2中所述设备私钥内容复制并另存为 client_private_key。然后,根据接入通道下载并配置上述3中对应的服务端根证书:GlobalSign 通道使用新版 globalsign-root-r46.pem,连接 1884 端口;自签名通道使用 iotcore-ecdsa-root-ca.crt,连接 1887 端口。如下载文件为压缩包,请先解压缩。
在 MQTT.fx 中,新建一个 MQTT 配置文件,并按图上说明配置,保存后选择此配置,点击connect,即可看到连接成功。


证书认证(国密标准SM2算法)
根据TLCP协议标准,通信过程需要两组证书:签名证书和加密证书。签名证书在认证过程使用,作用是验证身份;加密证书在密钥协商时使用,作用是数据加密。
1、签名证书及私钥
-----BEGIN CERTIFICATE----- 和 -----END CERTIFICATE----- 起止的部分为设备签名证书内容,可将此部分单独保存或在代码中直接粘贴,作为设备签名证书使用。
-----BEGIN EC PRIVATE KEY----- 和 -----END EC PRIVATE KEY----- 起止的部分为设备签名证书私钥,可将此部分单独保存或在代码中直接粘贴,作为设备签名证书私钥使用。

2、加密证书及私钥
-----BEGIN CERTIFICATE----- 和 -----END CERTIFICATE----- 起止的部分为设备加密证书内容,可将此部分单独保存或在代码中直接粘贴,作为设备加密证书使用。
-----BEGIN EC PRIVATE KEY----- 和 -----END EC PRIVATE KEY----- 起止的部分为设备加密证书私钥,可将此部分单独保存或在代码中直接粘贴,作为设备加密证书私钥使用。

3、服务端根证
目前 IoT Core 支持的 TLCP 协议服务端根证为平台自签名证书。客户端需先下载根证书文件,在模拟器客户端或代码中指定根证书文件的存放路径,并通过 1888 端口建立 TLCP 连接。
注意:因证书均存在有效期限制,请务必保证设备具备更新信任列表的能力。如遇切换,我们将至少提前30天告知用户。
点击 下载TLCP根证文件,请解压缩后使用。
评价此篇文章
