X.509证书是一种用于通信实体鉴别的数字证书。物联网平台支持基于MQTT协议直连的设备使用X.509证书进行认证。
限制说明
- 仅MQTT协议直连的设备可使用X.509证书认证。
- 目前仅华东2(上海)地域支持X.509证书认证。
- 连网方式为LoRaWAN的产品不支持X.509证书认证。
- 设备身份认证方式设置后,不可更改。
生成X.509证书
设备的X.509证书由物联网平台颁发。
设备端认证配置
目前仅C语言版的设备端Link SDK支持X.509认证方式。请访问C SDK获取,下载开发代码Demo。
使用X.509证书的设备连接物联网平台的域名和端口如下:
- 连接域名:x509.itls.cn-shanghai.aliyuncs.com
- 端口:1883
以下以C语言版的设备端Link SDK为例。
说明 如果您不使用阿里云提供的设备端Link SDK,而是自己开发设备端,需:
- 将设备X.509证书和密钥配置到安全库中。
- 将设备证书信息(ProductKey、DeviceName和DeviceSecret)设置为空字符串,认证通过后由云端下发ProductKey和DeviceName。
设备端从Topic
/ext/auth/identity/response
中获取云端下发的ProductKey和DeviceName。该Topic无需订阅。消息payload格式:
{ "productKey":"***", "deviceName":"***" }
设备再次连接
设备认证通过,获得ProductKey和DeviceName,并将ProductKey和DeviceName固化后,如果设备下线,再重新建立与物联网平台的MQTT连接时,传入的CONNECT报文参数:
连接域名 | x509.itls.cn-shanghai.aliyuncs.com:1883 |
可变报头(variable header):Keep Alive | CONNECT指令中需包含Keep Alive(保活时间)。保活心跳时间取值范围为30秒至1,200秒。如果心跳时间不在此区间内,物联网平台会拒绝连接。建议取值300秒以上。如果网络不稳定,将心跳时间设置高一些。 |
MQTT的CONNECT报文参数 |
mqttClientId包含的参数说明如下。其中,
说明 因为使用X.509数字证书认证,物联网平台不再校验签名值,mqttPassword设置为空。
|
在文档使用中是否遇到以下问题
更多建议
匿名提交