X.509证书是一种用于通信实体鉴别的数字证书。物联网平台支持基于MQTT协议直连的设备使用X.509证书进行认证。
限制说明
- 仅MQTT协议直连的设备可使用X.509证书认证。
- 目前仅华东2(上海)地域下旧版公共实例支持X.509证书认证。
- 连网方式为LoRaWAN的产品不支持X.509证书认证。
- 设备身份认证方式设置后,不可更改。
生成X.509证书
设备的X.509证书由物联网平台颁发。
- 登录物联网平台控制台。
- 在控制台左上方选择地域为华东2(上海),然后在实例概览页面,单击公共实例。
- 在X.509证书的产品,详细操作,请参见创建产品。 ,创建认证方式为
- 在单个创建设备、批量创建设备。 ,在新建的产品下创建设备,详细操作,请参见物联网平台创建设备时,会为设备颁发X.509证书和密钥。说明 对于使用X.509证书进行安全认证的设备,您需要在设备端烧录X.509证书。如果同时设备使用一型一密认证或子设备通过网关接入物联网平台功能,则您还需分别烧录ProductSecret或DeviceSecret。
- 下载设备的X.509证书和密钥。
- 下载批量创建设备的X.509证书和密钥。
- 在下载CSV按钮,下载设备证书信息表格。 ,单击设备批次对应的
- 根据下载表格中的CertUrl地址,下载设备X.509证书和密钥。 说明 CertUrl地址有效期为180天。请在批量创建设备后的180天内下载X.509证书信息。
- 下载单个设备的X.509证书和密钥。两种方式:
- 在查看,进入设备详情页。单击X.509证书对应的下载按钮,下载证书信息。 ,单击设备对应的
- 调用物联网平台API的QueryDeviceCert获取证书信息。
- 下载批量创建设备的X.509证书和密钥。
设备端认证配置
目前仅C语言版的设备端Link SDK支持X.509认证方式。请访问C Link SDK获取,下载开发代码Demo。
使用X.509证书的设备连接物联网平台的域名和端口如下:
- 连接域名:x509.itls.cn-shanghai.aliyuncs.com
- 端口:1883
- 下载根证书,用于双向认证时,校验服务端证书。
- 配置设备认证的MQTT连接。具体配置信息,请参见配置连接参数。X.509证书配置的具体流程和示例,请参见X.509证书的认证接入。
说明 如果您不使用阿里云提供的设备端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设置为空。 |