华为云用户手册

  • 使用限制 设备发放服务具有以下使用限制。 表1 设备发放服务使用限制列表 对象 类别/描述 限制 设备 集成Agent Lite的设备(MQTT) 不支持 原生MQTT协议设备 支持,设备需要开发设备引导接口,具备设备发放能力。 集成LiteOS的设备(LwM2M) 支持 证书 数字证书保证系统内各服务及系统与外部通信的安全性,防止通信数据在传输过程被篡改造成安全风险。 100 策略 自定义策略最多可添加的实例数 10 静态策略最多可添加的实例数 20 证书策略最多可添加的实例数 20 父主题: 产品介绍
  • 动态群组场景示例 通过设备名称模糊匹配规则(其他条件可以根据实际场景选择)创建动态群组,选择该动态群组执行OTA升级任务。 动态群组中的设备会动态根据设备名称匹配情况进行调整,并且该动态群组关联的OTA升级任务详情状态也会随之动态变化。 具体参考批量设备固件升级和动态群组的相关步骤进行操作。 创建动态群组,群组名称为“HuaweiDeviceGroup”,群组规则为 “device_name like 'HuaweiDevice%'”。 图5 动态群组详情 创建设备固件升级任务,选择动态群组“HuaweiDeviceGroup”,完成任务创建。 图6 固件升级任务 创建成功后可以查看动态群组中的设备已加入到该升级任务中。 图7 任务详情 参考注册单个设备注册设备,设备名称为“HuaweiDevice011”。注册成功后可以查看该设备已自动加入“HuaweiDeviceGroup”动态群组中。 图8 动态群组详情 查看软固件升级任务子任务详情,可以看到此设备已自动加入到升级任务中: 图9 固件升级任务 进入“HuaweiDevice001”设备详情界面,修改名称为“AbandonedHuaweiDevice001”。 图10 设备详情 修改设备名称成功后,可以查看该设备已自动从“HuaweiDeviceGroup”动态群组中移除。 图11 动态群组详情 查看软固件升级任务子任务详情,可以看到此设备的升级状态为“Removed”。 图12 固件升级任务
  • 群组概述 群组是一系列设备的集合,用户可以对资源空间下所有设备,根据区域、类型等不同规则进行分类建立群组,以便处理对海量设备的批量操作。例如,对资源空间下所有水表设备的群组进行固件升级。平台支持群组的增删改查操作,支持给群组绑定和解绑设备,支持一个设备被添加到多个群组中。 表1 群组分类 群组类型 使用说明 静态群组 手动添加设备到群组以及从群组中移除设备;支持群组层级嵌套。 限制: 账号下单实例最多可创建1,000个群组(包含嵌套的子群组)。 一个群组内最多添加20,000个设备。 一个设备最多可以被添加到10个群组中。 群组嵌套关系最大5级。 子群组只能归属一个父群组,不支持多父群组。 当群组有子群组时不能直接删除,需要先删除子群组才能删除父群组。 动态群组 按照动态群组规则(设备查询条件,类SQL语句)动态的将符合条件的设备自动添加进群组,不符合条件的自动移除群组;不支持手动管理群组中的设备。 限制: 账号下单实例最大可创建10个动态群组。 首次创建动态群组,规则最多允许匹配的100,000个设备(增量加入群组的设备无限制)。 动态群组默认为父群组,不支持将动态群组进行嵌套。 动态群组创建成功后,不允许修改动态群组规则。 不允许手动管理动态群组中的设备。 仅标准版实例、企业版实例支持该接口调用,基础版不支持。 单账号创建动态群组的 TPS 限制最大为1/S(每秒1次请求数)。
  • 设备发放业务流程 设备启动后,通过Bootstrap流程(设备出厂时预置设备发放平台地址作为引导服务器地址),引导物联网设备在初次上电时获得正确的目标物联网平台地址,继而完成设备与平台的建链过程。保证设备安全可靠的按业务目标上线,最大程度上减少人为干预的错误可能。 流程如下: 首先确认用户是否开通设备接入服务(物联网平台)。 在设备发放平台创建设备的发放清单(包括预注册设备以及添加发放策略)。 设备出厂时预置设备发放平台地址,设备上电后,设备发放服务通过使用标准 X.509证书验证或者根据设备密钥验证设备的标识,把设备发放到对应的设备接入平台。 设备发放将设备接入平台连接信息返回给设备。 设备通过收到的设备接入平台连接信息连接到设备接入平台。 父主题: 产品介绍
  • 创建MySQL 登录华为云官方网站,访问云数据库 MySQL,购买实例。设备接入服务企业版实例支持通过内网连接MySQL,标准版实例仅支持通过公网连接MySQL。 在购买的MySQL实例中,根据流转数据格式设计数据库表,可以通过数据过滤语句编辑流转数据。本示例使用设备属性上报通知的默认格式,将流转数据中的resource、event、notify_data、event_time分别转存至数据库表中的resource、event、content、event_time字段。 图1 创建数据库表样例
  • 转发方式概述 设备接入到物联网平台后,便可与物联网平台进行通信。设备通过自定义Topic或产品模型方式将数据上报到平台,在控制台设置后,通过订阅推送的方式,将设备生命周期变更、设备属性上报、设备消息上报、设备消息状态变更、设备状态变更、批量任务状态变更等消息转发到您指定的服务器。 当前华为物联网平台支持HTTP/HTTPS、AMQP、MQTT和设备间通信四种数据转发方式。 HTTP/HTTPS方式 订阅:应用服务器通过调用物联网平台的创建规则触发条件、创建规则动作、修改规则触发条件接口配置并激活规则,或者在控制台创建订阅任务,向平台获取发生变更的设备业务信息(如设备生命周期管理、设备数据上报、设备消息状态、设备状态等)和管理信息(软固件升级状态和升级结果)。订阅时必须指定应用服务器的URL,也称为回调地址。(什么是回调地址?)。 推送:订阅成功后,物联网平台根据应用服务器订阅的数据类型,将对应的变更信息(推送的通知内容可参考流转数据)推送给指定的URL地址。如果应用服务器没有订阅该类型的数据通知,即使数据发生了变更也不会进行推送。物联网平台进行数据推送时,数据格式为JSON格式,推送协议可以采用HTTP或HTTPS协议,其中HTTPS协议为加密传输协议,需要进行安全认证,更加安全,推荐使用。 HTTP/HTTPS方式详细请参考使用HTTP/HTTPS转发。 AMQP方式 订阅:AMQP(Advanced Message Queuing Protocol)即高级队列消息协议。用户通过控制台创建订阅任务,也可以通过调用物联网平台的创建规则触发条件、创建规则动作、修改规则触发条件接口配置并激活规则,向平台获取发生变更的设备业务信息(如设备生命周期管理、设备数据上报、设备消息状态、设备状态等)和管理信息(软固件升级状态和升级结果)。订阅时必须指定具体的AMQP消息通道。 推送:订阅成功后,物联网平台根据用户订阅的数据类型,将对应的变更信息推送给指定的AMQP消息队列。如果用户没有订阅该类型的数据通知,即使数据发生了变更也不会进行推送。用户可通过AMQP的客户端与IoT平台建立链接,来接收数据。 AMQP详细请参考使用AMQP转发。 MQTT方式 订阅:用户可以通过调用物联网平台的创建规则触发条件、创建规则动作、修改规则触发条件接口配置并激活规则,向平台获取发生变更的设备业务信息(如设备生命周期管理、设备数据上报、设备消息上报、设备状态等)和管理信息(软固件升级状态和升级结果)。订阅时必须指定接收推送消息的Topic。 推送:订阅成功后,物联网平台根据用户订阅的数据类型,将对应的变更信息推送给指定的Topic。如果用户没有订阅该类型的数据通知,即使数据发生了变更也不会进行推送。用户可通过MQTT的客户端与IoT平台建立连接,来接收数据。 MQTT详细请参考使用MQTT转发。 设备间通信 订阅:物联网平台支持基于MQTT协议实现设备间的消息通信,用户可通过控制台创建规则,也可以通过调用物联网平台的创建规则触发条件、创建规则动作、修改规则触发条件接口配置并激活规则,向平台获取设备上报的消息。设备订阅只支持消息上报。 推送:订阅成功后,物联网平台会将设备上报的消息推送到指定的MQTT Topic,当设备接入平台后,可以通过订阅该Topic来接收数据,从而实现设备间的消息通信。 设备间通信详细请参考设备间通信。 数据转发方式 适用场景 优点 限制 HTTP/HTTPS订阅推送 应用作为服务端被动接收IoT云服务的消息。 - 流控限制800TPS,不建议大流量推送使用HTTP/HTTPS方式。 AMQP订阅推送 应用作为客户端,可主动拉取IoT云服务的消息,也可以通过监听被动接收 IoT云服务的消息。 能主动拉取数据 请参考连接规格。 MQTT订阅推送 应用作为客户端,可以通过订阅接收 IoT云服务的消息。 - 请参考使用限制。 设备间通信 智能家居控制场景,手机APP和智能设备之间进行消息通信。 设备联动,设备间进行数据传输与消息通信。 实现设备间通信 请参考设备间消息通信概述。 父主题: 数据转发至第三方应用
  • 代码示例 在本地计算机创建一个JavaScript文件(例:HwIotAmqpClient.js),保存以下示例代码到文件中。参考AMQP客户端接入说明修改相关连接参数。 const container = require('rhea'); //获取当前时间戳 var timestamp = Math.round(new Date()); //建立连接。 var connection = container.connect({ //接入域名,请参考这里。 'host': '${UUCID}.iot-amqps.cn-north-4.myhuaweicloud.com', 'port': 5671, 'transport': 'tls', 'reconnect': true, 'idle_time_out': 8000, //userName组装方法,请参考这里。 'username': 'accessKey=${yourAccessKey}|timestamp=' + timestamp + '|instanceId=${instanceId}', //accessCode,请参考这里。 'password': '${yourAccessCode}', 'saslMechannisms': 'PLAIN', 'rejectUnauthorized': false, 'hostname': 'default', }); //创建Receiver连接。 队列名,可以使用默认队列DefaultQueue var receiver = connection.open_receiver('${yourQueue}'); //接收云端推送消息的回调函数。 container.on('message', function (context) { var msg = context.message; var content = msg.body; console.log(content); //发送ACK,注意不要在回调函数有耗时逻辑。 context.delivery.accept(); }); 进入上一步创建的文件(HwIotAmqpClient.js)所在目录,执行以下命令安装rhea库。 npm install rhea 安装完成后,项目文件如下图所示。 通过命令启动AMQP客户端,命令如下。 node HwIotAmqpClient.js 运行结果示例 订阅成功: 显示如下日志代表AMQP客户端订阅成功,并成功获取到物联网平台数据。 订阅失败 以下日志代表AMQP客户端在物联网平台鉴权失败,请确认接入码是否正确,时间戳与标准时间的差异是否大于5min。
  • 购买RocketMQ 登录华为云,访问分布式消息服务RocketMQ版, 进入分布式消息服务管理控制台。 单击右上角“购买RocketMQ实例”, 按照需求选择RocketMQ规格,单击“立即购买”。 图1 购买RocketMQ 单击进入购买的RocketMQ实例,开启ACL访问控制后,单击“用户管理”添加用户,可参考创建用户。 图2 添加用户 单击左侧导航栏“topic管理”,单击“创建topic”创建RocketMQ的topic。
  • 流控策略维度 表1 流控策略类型 流控策略类型 描述 实例级别流控 使用此策略类型时,流控的范围为当前实例中所有数据转发的流量,超出流控的数据会被丢弃。 转发通道流控 使用此策略类型时,流控的范围为当前实例中所有转发至指定目标的流量。 转发规则流控 使用此策略类型时,流控的范围为当前实例中所有触发指定转发规则的流量,超出流控的数据会被丢弃。 转发动作流控 使用此策略类型时,流控的范围为当前实例中所有转发至指定动作的流量。 流控策略创建成功后,不支持修改流控策略类型。 超出实例和转发规则级别流控的数据会被丢弃,请慎重考虑后再使用。 同时创建多个不同类型的流控策略,以最先达到流控阈值的策略为准。例如配置了转发规则A的流控大小为50tps,转发规则A下转发动作B的流控大小为100tps,触发转发规则A的流转数据流量为80tps,则触发了转发规则A的流控。
  • 操作步骤 访问设备接入服务,单击“管理控制台 ”进入设备接入控制台。 单击“规则” ,选择“数据转发” ,选择 “策略配置” ,进入流控策略配置界面。 图1 策略配置界面 在弹出的界面中填写相关信息后,单击“确定”即可完成流控策略创建。 图2 创建流控策略 表2 参数说明 参数名称 描述 策略名称 长度为4-256,只允许中文、字母、数字以及_?'#().,&%@!-等字符的组合。 描述 关于该策略的描述,长度为4-256,只允许中文、字母、数字以及_?'#().,&%@!-等字符的组合。 流控大小 取值范围为1-1000。 流控策略类型 包括实例级别流控、转发通道流控、转发规则流控、转发动作流控四种流控策略类型。 转发目标 当流控策略类型为转发通道流控时生效,对应当前实例支持的转发通道类型。 绑定规则 当流控策略类型为转发规则流控时生效,对应IoT物联网平台上的数据转发规则。 绑定动作 当流控策略类型为转发动作流控时生效,对应IoT物联网平台上的数据转发动作。
  • 使用说明 图2 设备消息上报操作流程 创建产品与设备:创建产品流程、创建设备流程。 设备鉴权:平台验证设备是否具有接入权限。 设备消息上报:设备通过MQTT/HTTP等协议发送消息数据。 按照不同的设备协议,调用的接口不一样,下面分别介绍MQTT、HTTPS协议消息上报的样例: MQTT:通过消息上报接口MQTT协议消息上报、使用MQTT.fx调测上报数据到物联网平台。MQTT消息上报样例如下: Topic:$oc/devices/{device_id}/sys/messages/up 数据格式样例: { "content": {"hello":"123"} } HTTPS:通过消息上报接口HTTP协议消息上报上报数据到物联网平台,其中access_token获取参考:HTTPS设备鉴权。HTTPS消息上报样例如下: POST https://{endpoint}/v5/devices/{device_id}/sys/messages/up Content-Type: application/json access_token: d144a524-1997-4b99-94bf-f27128da8a34 { "name": "name", "id": "id", "content": "messageUp" } 协议详情请参考:MQTT协议消息上报、HTTP协议消息上报。 数据转发:可以通过数据流转功能转发到应用侧或华为云其他云服务上进行存储和处理。
  • 代码示例 您可以单击这里获取Java SDK接入示例,Demo中涉及的参数说明,请参考AMQP客户端接入说明。 所有示例代码已经包含与服务端断线重连的逻辑。 示例代码中用到的AmqpClient.java、AmqpClientOptions.java、AmqpConstants.java可以从这里获取。 1、创建AmqpClient。 // 以下参数请修改为自己的参数值 AmqpClientOptions options = AmqpClientOptions.builder() .host(AmqpConstants.HOST) .port(AmqpConstants.PORT) .accessKey(AmqpConstants.ACCESS_KEY) .accessCode(AmqpConstants.ACCESS_CODE) .queuePrefetch(1000) // sdk会在内存中分配该参数大小的队列,用来接收消息,客户端内存较小的情况可以调小该参数。 .build(); AmqpClient amqpClient = new AmqpClient(options); amqpClient.initialize();
  • 属性下发使用说明 属性下发分为修改属性与获取属性值,下列以修改属性为例,介绍属性下发。 图1 属性下发流程图 应用调用修改设备属性接口,下发请求到物联网平台,属性下发消息样例如下: PUT https://{endpoint}/v5/iot/{project_id}/devices/{device_id}/properties { "services" : [ { "service_id" : "Temperature", "properties" : { "value" : 57 } }, { "service_id" : "Battery", "properties" : { "level" : 80 } } ] } 物联网平台根据协议规范下发属性给设备。通过MQTT协议中平台设置设备属性接口下发属性为样例: Topic: $oc/devices/{device_id}/sys/properties/set/request_id={request_id} 数据格式: { "object_device_id": "{object_device_id} ", "services": [ { "service_id": "Temperature", "properties": { "value": 57, "value2": 60 } }, { "service_id": "Battery", "properties": { "level": 80, "level2": 90 } } ] } 设备执行属性下发命令后返回命令执行结果,消息样例如下: Topic:$oc/devices/{device_id}/sys/properties/set/response/request_id={request_id} 数据格式: { "result_code": 0, "result_desc": "success" } 应用侧收到发送HTTP下发命令的同步响应结果。消息样例如下: Status Code: 200 OK Content-Type: application/json { "response" : { "result_code" : 0, "result_desc" : "success" } }
  • 和其他服务的关系 设备发放服务与其他服务的关系如表1所示。 表1 与其他服务的关系列表 交互功能 相关服务 位置 创建设备时,需要使用设备接入服务创建的产品 设备接入服务(IoT Device Access,IoTDA) 创建产品 创建自定义策略时需要使用函数 函数工作流服务(FunctionGraph) 创建并初始化函数 创建证书策略使用云证书时,需要去云证书管理服务创建云证书 云证书管理服务(Cloud Certificate Manager Service,CCM) 创建私有CA 父主题: 产品介绍
  • 业务流程 IoT Device SDK提供相关的接口,开发者调用这些接口网关实现与物联网平台的对接。不同语言的SDK的接口名称不一样,每个接口功能请参见IoT Device SDK使用指南(Java)、IoT Device SDK使用指南(C)、IoT Device SDK使用指南(C#)、IoT Device SDK使用指南(Android)、IoT Device SDK Tiny使用指南(C)。 表1 业务流程 应用侧管理子设备业务流程 网关管理子设备业务流程 图2 应用侧管理子设备流程图 图3 网关侧管理子设备流程图 1.在物联网平台上传网关的产品模型,并注册网关设备。 2.网关调用鉴权接口上线 3.在物联网平台上传子设备的产品模型。 4.网关鉴权成功后,应用调用添加子设备接口,填写设备相关信息(与产品模型定义一致)。添加成功后,您可以在物联网平台查看添加的子设备(如何查看?)。您也可以通过控制台添加子设备,详细请查看如何添加? 4.网关鉴权成功后,网关调用网关新增子设备请求接口,填写设备相关信息(与产品模型定义一致)。平台在处理完成后,将处理结果通过接口网关新增子设备请求响应发送给网关。 5.添加子设备后,子设备状态显示“未激活”。请在子设备添加成功后,或者子设备上报数据前,调用网关更新子设备状态接口进行设备状态更新。 说明: 子设备的状态表示子设备接入网关的状态,由网关上报到物联网平台进行状态的刷新;如果网关不能正常上报子设备的状态信息到物联网平台,则展示的子设备状态不会刷新。例如:某子设备通过网关接入到物联网平台,子设备状态为在线状态,如果此时网关与物联网平台断开连接,则网关不能上报子设备的状态到物联网平台,该子设备的状态会一直显示在线。 6.网关调用批量属性上报接口上报子设备的数据,接口里的参数填写网关和子设备的相关设备信息。 7.网关订阅命令下发Topic,接收并处理应用服务器或物联网平台下发的命令。 8.应用服务器调用删除设备接口,给网关下发删除子设备命令,网关收到该命令后,可以进行相应的业务处理。 8.网关调用网关删除子设备请求接口,平台收到后会进行数据处理,当处理完成后会通过接口网关删除子设备请求响应将结果发送给设备。
  • 概述 物联网平台设备分为直链设备和非直接设备。 直连设备:通过平台支持的协议,直接连接到平台的设备称为直连设备。平台支持直连的协议请参考概述中类型为通用协议,子类型为直连云端中的协议。 非直连设备:针对未实现TCP/IP协议栈的设备,由于无法直接同物联网平台通信,它需要通过网关进行数据转发。网关设备为直连设备,当前仅支持通过mqtt协议直连到平台的设备作为网关设备。 直连设备与非直连设备关系如下图: 图1 网关与子设备
  • 使用X.509证书的鉴权流程 X.509证书是一种用于通信实体鉴别的数字证书。当前物联网平台只支持基于MQTT协议接入的设备使用X.509证书进行设备身份认证,且每个用户最多上传100个设备CA证书。 在控制台上传设备CA证书。 通过调用注册接口向物联网平台发送注册请求或者在控制台上注册设备。 注册时需要填写设备标识码,通常使用MAC地址,Serial No或IMEI作为nodeId。 物联网平台向设备分配全局唯一的设备ID(deviceId)。 用户将设备ID(deviceId)烧录到设备硬件或软固件中。 设备上电后,携带设备侧X.509证书发起接入鉴权请求。 平台验证通过后,返回成功响应,设备连接物联网平台成功。
  • 使用LwM2M/CoAP协议接入的鉴权流程 通过调用注册接口向物联网平台发送注册请求或者在控制台上注册设备。 物联网平台向设备分配密钥,返回timeout。 密钥可以在注册设备时自定义,如果没有定义,平台将自动分配预置密钥。 timeout是指超时时间,若设备在有效时间未接入物联网平台,则平台会删除该设备的注册信息。 用户将密钥烧录到设备硬件或软固件中。 设备上电后,安全设备携带设备唯一标识码nodeId(如IMEI)和密钥发起接入鉴权请求;非安全设备携带设备唯一标识码发起接入鉴权请求。 平台验证通过后,返回成功响应,设备连接物联网平台成功。
  • 创建授权关系 被授权方进入“授权”界面,单击在“被授权列表”下的“发起授权请求”。 被授权方填写授权方的账号名称或者账号ID(即IAM的Domain Name或Domain ID),单击“获取短信验证码”。 系统将向授权方绑定的手机号发送短信验证码,被授权方从授权方获取到短信验证码,填入验证码输入框,填写“描述”信息。 被授权方单击“确定”,授权请求完成,授权关系建立。 被授权方将在“被授权列表”中查看到与其他租户建立的授权关系,授权方将在“授权列表”中查看到与其他租户建立的授权关系。被授权方可删除某一条授权关系,授权方可禁用或删除某一条授权关系。
  • 连接鉴权 MQTT.fx 是目前主流的MQTT桌面客户端,它支持 Windows, Mac, Linux,可以快速验证是否可以与设备发放服务进行连接并发布或订阅消息。 本文主要介绍 MQTT.fx 如何与华为设备发放交互,其中设备发放服务MQTT的南向接入地址请参考获取终端节点。 下载 MQTT.fx(默认是64位操作系统,如果是32位操作系统,单击此处下载 MQTT.fx ),安装MQTT.fx工具。 打开 MQTT.fx 客户端程序,单击“设置”。 填写 Connection Profile 相关信息和 General 信息。其中General 信息可以用工具默认的参数配置。 填写 User Credentials 信息。 其中Username 参考MQTT CONNECT连接鉴权参数说明(无需填写Password)。 选择开启 SSL/TLS,勾选Self signed certificates,配置相关证书内容。 CA File为设备发放对应的CA证书。 Client Certificate File为设备的设备证书。 Client Key File为设备的私钥。 完成以上步骤后,单击“Apply”和“OK”进行保存,并在配置文件框中选择刚才创建的文件名,单击“Connect”,当右上角圆形图标为绿色时,说明连接设备发放服务成功,可进行订阅(Subscribe)和消息推送(Publish)操作。
  • 连接鉴权 MQTT.fx 是目前主流的MQTT桌面客户端,它支持 Windows, Mac, Linux,可以快速验证是否可以与设备发放服务进行连接并发布或订阅消息。 本文主要介绍 MQTT.fx 如何与华为设备发放交互,其中设备发放服务MQTT的南向接入地址请参考获取终端节点。 下载 MQTT.fx(默认是64位操作系统,如果是32位操作系统,单击此处下载 MQTT.fx ),安装MQTT.fx工具。 打开 MQTT.fx 客户端程序,单击“设置”。 填写 Connection Profile 相关信息和 General 信息。其中General 信息可以用工具默认的参数配置。 填写 User Credentials 信息。 其中Username 参考MQTT CONNECT连接鉴权参数说明(无需填写Password)。 注:注册组的场景不存在选择产品,所以命名需要注意:如果命名字符串有“_”,那么第一项必须为对应设备接入已经存在的产品ID,如果不包括“_”,那么可以随意命名。 选择开启 SSL/TLS,勾选Self signed certificates,配置相关证书内容。 CA File为设备发放对应的CA证书。 Client Certificate File为设备的设备证书。 Client Key File为设备的私钥。 完成以上步骤后,单击“Apply”和“OK”保存,并在配置文件框中选择刚才创建的文件名,单击“Connect”,当右上角圆形图标为绿色时,说明连接设备发放服务成功,可进行订阅(Subscribe)和消息推送(Publish)操作。
  • 生成设备证书 使用OpenSSL工具为设备证书生成密钥对(设备私钥): openssl genrsa -out deviceCert.key 2048 使用设备密钥对,生成证书签名请求文件: openssl req -new -key deviceCert.key -out deviceCert.csr 生成证书签名请求文件时,要求填写证书唯一标识名称(Distinguished Name,DN)信息,参数说明如下表2所示。 表3 证书签名请求文件参数说明 提示 参数名称 取值样例 Country Name (2 letter code) []: 国家/地区 CN State or Province Name (full name) []: 省/市 GuangDong Locality Name (eg, city) []: 城市 ShenZhen Organization Name (eg, company) []: 组织机构(或公司名) Huawei Technologies Co., Ltd. Organizational Unit Name (eg, section) []: 机构部门 Cloud Dept. Common Name (eg, fully qualified host name) []: CA名称(CN) Huawei IoTDP CA Email Address []: 邮箱地址 / A challenge password []: 证书密码,如您不设置密码,可以直接回车 / An optional company name []: 可选公司名称,如您不设置,可以直接回车 / 使用CA证书、CA证书私钥和CSR文件创建设备证书(deviceCert.crt)。 openssl x509 -req -in deviceCert.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out deviceCert.crt -days 36500 -sha256 生成设备证书用到的“rootCA.crt”和“rootCA.key”这两个文件,为“制作CA证书”中所生成的两个文件,且需要完成“上传并验证CA证书”。 “-days”后的参数值指定了该证书的有效天数,此处示例为36500天,您可根据实际业务场景和需要进行调整。
  • 上传并验证CA证书 登录设备发放控制台,进入“证书”界面,单击右上角“上传CA证书”,填写“证书名称”并上传上述“制作CA证书”步骤后生成的“CA证书(rootCA.crt文件)”,单击“确定”。 验证步骤1中上传的CA证书,只有成功验证证书后该证书方可使用。 为验证证书生成密钥对。 openssl genrsa -out verificationCert.key 2048 获取随机验证码。 利用此验证码生成证书签名请求文件CSR。 openssl req -new -key verificationCert.key -out verificationCert.csr CSR文件的Common Name (e.g. server FQDN or YOUR name) 需要填写前一过程中获取到的随机验证码。 使用CA证书、CA证书私钥和CSR文件创建验证证书(verificationCert.crt)。 openssl x509 -req -in verificationCert.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out verificationCert.crt -days 500 -sha256 生成验证证书用到的“rootCA.crt”和“rootCA.key”这两个文件,为“制作CA证书”中所生成的两个文件。 “-days”后的参数值指定了该证书的有效天数,此处示例为500天,您可根据实际业务场景和需要进行调整。 上传验证证书进行验证。
  • 制作CA证书 在浏览器中访问这里,下载并进行安装OpenSSL工具,安装完成后配置环境变量。 在 D:\certificates 文件夹下,以管理员身份运行cmd命令行窗口。 生成密钥对(rootCA.key): 生成“密钥对”时输入的密码在生成“证书签名请求文件”、“CA证书”,“验证证书”以及“设备证书”时需要用到,请妥善保存。 openssl genrsa -des3 -out rootCA.key 2048 使用密钥对生成证书签名请求文件: 生成证书签名请求文件时,要求填写证书唯一标识名称(Distinguished Name,DN)信息,参数说明如下表1 所示。 表2 证书签名请求文件参数说明 提示 参数名称 取值样例 Country Name (2 letter code) []: 国家/地区 CN State or Province Name (full name) []: 省/市 GuangDong Locality Name (eg, city) []: 城市 ShenZhen Organization Name (eg, company) []: 组织机构(或公司名) Huawei Technologies Co., Ltd. Organizational Unit Name (eg, section) []: 机构部门 Cloud Dept. Common Name (eg, fully qualified host name) []: CA名称(CN) Huawei IoTDP CA Email Address []: 邮箱地址 / A challenge password []: 证书密码,如您不设置密码,可以直接回车 / An optional company name []: 可选公司名称,如您不设置,可以直接回车 / openssl req -new -key rootCA.key -out rootCA.csr 生成CA证书(rootCA.crt): openssl x509 -req -days 50000 -in rootCA.csr -signkey rootCA.key -out rootCA.crt “-days”后的参数值指定了该证书的有效天数,此处示例为50000天,您可根据实际业务场景和需要进行调整。
  • 新增注册组 创建注册组。 注册组密钥为长度在”32~128“字节的字节码。在创建密钥注册组时,返回的注册组密钥为“base64编码后的注册组密钥字符串”。 若不指定注册组密钥,则注册组密钥由设备发放服务生成。 若指定注册组密钥,在创建中注册组时需在密钥输入框内填写“指定字节码Base64编码后生成的字符串”。 如果需要下发初始化配置,那么对应在初始设备配置选项中填写对应的JSON字符串,设备发放不理解该字段,只是透传该JSON字符串,由设备理解解析。如果不需要下发该字段则不填 创建完成后会返回注册组密钥,点击复制保存注册组密钥。
  • 连接鉴权 MQTT.fx 是目前主流的MQTT桌面客户端,它支持 Windows, Mac, Linux,可以快速验证是否可以与设备发放服务进行连接并发布或订阅消息。 本文主要介绍 MQTT.fx 如何与华为设备发放交互,其中设备发放服务MQTT的南向接入地址请参考获取终端节点。 下载 MQTT.fx(默认是64位操作系统,如果是32位操作系统,单击此处下载 MQTT.fx ),安装MQTT.fx工具。 打开 MQTT.fx 客户端程序,单击“设置”。 填写 Connection Profile 相关信息。其中General 可以使用工具默认信息。 其中Broker Address和Broker Port可以参考获取终端节点,Client ID 可以参考MQTT CONNECT连接鉴权参数说明,访问这里填写设备ID(DeviceId)等设备信息,生成连接信息(ClientId、Username、Password)。 填写 User Credentials 信息。 其中Username 参考MQTT CONNECT连接鉴权参数说明(无需填写Password)。 选择开启 SSL/TLS,勾选 Self signed certificates,配置相关证书内容。 CA File为设备发放对应的CA证书。 Client Certificate File为设备的设备证书。 Client Key File为设备的私钥。 完成以上步骤设置后,单击“Apply”和“OK”保存,并在配置文件框中选择刚才创建的文件名,单击“Connect”,当右上角圆形图标为绿色时,说明连接设备发放服务成功,可进行订阅(Subscribe)和消息推送(Publish)操作。
  • 生成设备证书 使用OpenSSL工具为设备证书生成密钥对(设备私钥): openssl genrsa -out deviceCert.key 2048 使用设备密钥对,生成证书签名请求文件: openssl req -new -key deviceCert.key -out deviceCert.csr 生成证书签名请求文件时,要求填写证书唯一标识名称(Distinguished Name,DN)信息,参数说明如下表2所示。 表3 证书签名请求文件参数说明 提示 参数名称 取值样例 Country Name (2 letter code) []: 国家/地区 CN State or Province Name (full name) []: 省/市 GuangDong Locality Name (eg, city) []: 城市 ShenZhen Organization Name (eg, company) []: 组织机构(或公司名) Huawei Technologies Co., Ltd. Organizational Unit Name (eg, section) []: 机构部门 Cloud Dept. Common Name (eg, fully qualified host name) []: CA名称(CN) Huawei IoTDP CA Email Address []: 邮箱地址 / A challenge password []: 证书密码,如您不设置密码,可以直接回车 / An optional company name []: 可选公司名称,如您不设置,可以直接回车 / 使用CA证书、CA证书私钥和CSR文件创建设备证书(deviceCert.crt)。 openssl x509 -req -in deviceCert.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out deviceCert.crt -days 36500 -sha256 生成设备证书用到的“rootCA.crt”和“rootCA.key”这两个文件,为“制作CA证书”中所生成的两个文件,且需要完成“上传并验证CA证书”。 “-days”后的参数值指定了该证书的有效天数,此处示例为36500天,您可根据实际业务场景和需要进行调整。
  • 上传并验证CA证书 登录设备发放控制台,进入“证书”界面,单击右上角“上传CA证书”,填写“证书名称”并上传上述“制作CA证书”步骤后生成的“CA证书(rootCA.crt文件)”,单击“确定”。 验证步骤1中上传的CA证书,只有成功验证证书后该证书方可使用。 为验证证书生成密钥对。 openssl genrsa -out verificationCert.key 2048 获取随机验证码。 利用此验证码生成证书签名请求文件CSR。 openssl req -new -key verificationCert.key -out verificationCert.csr CSR文件的Common Name (e.g. server FQDN or YOUR name) 需要填写前一过程中获取到的随机验证码。 使用CA证书、CA证书私钥和CSR文件创建验证证书(verificationCert.crt)。 openssl x509 -req -in verificationCert.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out verificationCert.crt -days 500 -sha256 生成验证证书用到的“rootCA.crt”和“rootCA.key”这两个文件,为“制作CA证书”中所生成的两个文件。 “-days”后的参数值指定了该证书的有效天数,此处示例为500天,您可根据实际业务场景和需要进行调整。 上传验证证书进行验证。
  • 制作CA证书 在浏览器中访问这里,下载并进行安装OpenSSL工具,安装完成后配置环境变量。 在 D:\certificates 文件夹下,以管理员身份运行cmd命令行窗口。 生成密钥对(rootCA.key): 生成“密钥对”时输入的密码在生成“证书签名请求文件”、“CA证书”,“验证证书”以及“设备证书”时需要用到,请妥善保存。 openssl genrsa -des3 -out rootCA.key 2048 使用密钥对生成证书签名请求文件: 生成证书签名请求文件时,要求填写证书唯一标识名称(Distinguished Name,DN)信息,参数说明如下表1 所示。 表2 证书签名请求文件参数说明 提示 参数名称 取值样例 Country Name (2 letter code) []: 国家/地区 CN State or Province Name (full name) []: 省/市 GuangDong Locality Name (eg, city) []: 城市 ShenZhen Organization Name (eg, company) []: 组织机构(或公司名) Huawei Technologies Co., Ltd. Organizational Unit Name (eg, section) []: 机构部门 Cloud Dept. Common Name (eg, fully qualified host name) []: CA名称(CN) Huawei IoTDP CA Email Address []: 邮箱地址 / A challenge password []: 证书密码,如您不设置密码,可以直接回车 / An optional company name []: 可选公司名称,如您不设置,可以直接回车 / openssl req -new -key rootCA.key -out rootCA.csr 生成CA证书(rootCA.crt): openssl x509 -req -days 50000 -in rootCA.csr -signkey rootCA.key -out rootCA.crt “-days”后的参数值指定了该证书的有效天数,此处示例为50000天,您可根据实际业务场景和需要进行调整。
  • 设置企业版实例公网访问 为了助力企业快速迁移上云,物联网平台提供通过公网、私网、专线等接入形式。 当您需要通过公网地址访问设备接入实例时,可配置实例的公网访问功能。公网访问带宽默认是50Mb/s,无需额外付费。如果您需要扩大带宽,请提交工单说明您的需求。 访问设备接入服务,单击“管理控制台 ”进入设备接入控制台。 选择左侧导航栏“IoTDA实例”,单击实例名称进入实例详情页面。 单击“配置公网接入”,为应用或设备配置公网接入地址,单击“确认”后平台会自动生成公网IP。 图2 实例管理-配置公网接入
共100000条