设备通过您自研的MQTT接入工具连接物联网平台时,需输入MQTT的签名认证参数username、passwd和mqttClientId。本文介绍获取MQTT连接签名参数值的方法。
概述
您可根据实际业务需要,选择如下方法获取MQTT签名参数值。
方法 | 说明 |
---|---|
直接在物联网平台获取 | 支持签名算法为hmacsha256。 设备的ClientId默认为 |
使用网页工具计算 | 支持签名算法为hmacmd5和hmacsha1。 |
使用Node.js语言脚本计算 | 支持签名算法为hmacsha256。 设备的ClientId默认为 |
直接在物联网平台获取
- 登录物联网平台控制台。
- 在实例概览页面,选择目标环境,找到对应的实例,单击实例ID或备注名称。重要 目前仅开通企业版实例服务的地域下,执行此步骤。其他地域,请跳过此步骤。地域及实例的支持说明,请参见实例概述。
- 在左侧导航栏,选择设备页面。 ,进入
- 在设备列表中,单击目标设备对应的查看按钮,进入设备详情页面。
- 在设备信息页签下,单击MQTT连接参数右侧的查看,获取MQTT签名参数信息。重要 其中clientId是mqttClientId值,请勿与设备的clientId混淆。MQTT连接参数的详细说明,请参见MQTT-TCP连接通信。
使用网页工具计算
- 单击下载MQTT_Password工具包,然后解压。
- 在文件夹MQTT_Password下,使用浏览器打开sign.html文件。
- 在MQTT签名计算页面,根据页面提示,输入对应信息,如下图所示。
参数 说明 productKey 您添加设备后,保存的设备证书信息,请参见设备证书信息。 您可在控制台中设备的设备详情页面查看。
deviceName deviceSecret timestamp 时间戳。当前时间毫秒值,自动填充。每刷新一次页面,更新一次。 clientId 设备的Client ID信息,可自定义,长度在64个字符以内。建议使用您设备的MAC地址或SN码,方便您识别区分不同的设备。 method 签名算法类型,支持hmacmd5和hmacsha1。 - 单击Generate,计算结果显示签名参数值。
使用Node.js语言脚本计算
- 下载签名工具包signTool.zip,解压缩后,在文件mqttSignTool.js中修改以下参数,并保存。
参数 示例 说明 productKey a1Ee*** 您添加设备后,保存的设备证书信息,请参见设备证书信息。 您可在控制台中设备的设备详情页面查看。
deviceName 8Co5*** deviceSecret bcabcf*** timestamp 2524608000000 时间戳。当前时间毫秒值。 briefId 12345 设备的Client ID信息。可选参数。 本工具包默认设置为
${ProductKey} + '.' + ${DeviceName}
组成的字符串,您可根据需要修改,例如var briefId = '12345'
。重要 该值可自定义,长度在64个字符以内。建议使用您设备的MAC地址或SN码,方便您识别区分不同的设备。 - 在Windows系统或Linux系统下,下载并安装Node.js。本文以Ubuntu 16.04 64位Linux系统为例,下载已编译的包
node-v16.5.0-linux-x64.tar.gz
。 - 执行以下命令,先退出node-v16.5.0-linux-x64文件目录,然后创建项目文件signTool,来存放JavaScript文件和签名库文件。
cd.. mkdir signTool cd signTool/
- 将步骤1中已修改完成的mqttSignTool.js文件,上传至Linux虚拟机开发环境的signTool目录下。
- 在signTool文件下,执行以下命令,下载并查看签名库文件。
npm install crypto-js ls
下载后的库文件如下图所示。 - 执行以下命令,运行签名文件mqttSignTool.js。
node mqttSignTool.js
返回如下信息,即为通过MQTT接入物联网平台的签名认证参数信息。重要 其中clientId是mqttClientId值,请勿与设备的clientId混淆。MQTT连接参数的详细说明,请参见MQTT-TCP连接通信。