华为云用户手册

  • 业务迁移 设备有对接设备发放(设备适配了设备发放能力)。如果设备第一次发放成功接入后,根据业务需要重新接入到新的实例,可以通过再次发放动态修改接入地址。 本场景涉及的功能也适用于多个商用环境间的迁移。 设备没有对接设备发放。对于设备预置的是设备接入的地址,根据业务需要,需要更改设备的接入实例(比如共享实例往专享实例迁移,设备从测试环境往商用环境迁移),可以通过设备发放实现设备的业务迁移。 具体使用示例参考设备数据迁移。 本场景涉及的功能也适用于多个商用环境间的迁移。
  • 动态完成不同批次设备初始化配置 当不同型号的设备在首次连接设备接入时需要具备不同的初始化状态,可以通过设备发放完成不同批次设备初始化配置。 具体使用示例参考: MQTT 密钥设备使用静态策略发放示例 MQTT 密钥设备使用静态策略发放是设备预注册的场景,需要为每个设备预置初始化的值。 MQTT 注册组静态策略发放示例 MQTT 注册组静态策略发放是设备注册组的场景,只需要为注册组设置一个初始化的值,那么对应这个组的设备都可以收到下发的初始化配置。一般来说:设备初始化配置会配合注册组使用。
  • 参数说明 参数 必选/可选 类型 参数描述 clientId 必选 String(256) 注册组选择非华为云证书场景: 设备clientId由3个部分组成:设备ID、设备身份标识类型、用户标识ID(ScopeID)。通过下划线“_”分隔,设备身份标识类型固定值为0 例:5f052ac562369102d42b0fb6_0_ff5bbx7a488f 其他场景: 设备clientId由4个部分组成:设备ID、设备身份标识类型、密码签名类型、时间戳。通过下划线“_”分隔,设备身份标识类型固定值为0 密码签名类型:长度1字节,当前支持2种类型: “0”代表HMACSHA256不校验时间戳。 “1”代表HMACSHA256校验时间戳。 时间戳:为设备连接平台时的UTC时间,格式为YYYYMMDDHH,如UTC 时间2018/7/24 17:56:20 则应表示为2018072417。 例:5f052ac562369102d42b0fb6_0_0_2019122614 Username 必选 String(256) 设备ID。 Password 必选 String(256) Password的值为使用“HMACSHA256”算法以时间戳为密钥,对secret进行加密后的值(secret为注册设备时平台返回的secret)。 当设备认证类型使用密钥认证接入(SECRET)需填写“Password”,证书认证接入(CERTIFICATES)不需填写“Password”。 注:ScopeID可以在设备发放页面点击注册组查询,如下图所示。 设备通过MQTT协议的connect消息进行鉴权,对于构造clientId的各个部分信息都必须包括进去,平台收到connect消息时,会判断设备的鉴权类型和密码摘要算法。 当采用“HMACSHA256”校验时间戳方式时,会先校验消息时间戳与平台时间是否一致,再判断密码是否正确。 当采用“HMACSHA256”不校验时间戳方式时,鉴权消息也必须带时间戳,但不检验时间是否准确,仅判断密码是否正确。 connect消息鉴权失败时,平台会返回错误,并自动断开MQTT链路。 访问参数生成工具,填写注册设备后生成的设备ID(DeviceId)和密钥(DeviceSecret),生成设备连接鉴权所需的参数(ClientId、Username、Password)。
  • 接口功能 设备发放平台设备侧支持MQTT协议的connect消息接口,接口规范参考MQTT标准规范,鉴权通过后建立设备与平台间的MQTT连接。 设备发放平台目前只支持MQTTS接入,设备通过connect消息接口和平台建立MQTT连接时,需要使用服务端CA证书验证服务端证书。服务端CA证书单击huaweicloud-iot-root-ca-list获取证书文件压缩包。 根据您使用的工具或语言取用压缩包内的证书文件: IoT Device SDK(C/C#)、MQTT.fx工具:使用压缩包中c目录下以pem或crt为后缀的文件; IoT Device SDK(Java):使用压缩包中java目录下以jks为后缀的文件; IoT Device SDK(Android):使用压缩包中android目录下以bks为后缀的文件。
  • 连接鉴权 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 和Password 参数参考MQTT CONNECT连接鉴权参数说明。 选择开启 SSL/TLS,勾选CA certificate file,CA Certificate File指定为物联网平台根证书(请先下载物联网平台的根证书,解压后,选择其中c或java目录下PEM后缀的文件)的本地路径。 完成以上步骤后,单击“Apply”和“OK”保存,并在配置文件框中选择刚才创建的文件名,单击“Connect”,当右上角圆形图标为绿色时,说明连接设备发放服务成功,可进行订阅(Subscribe)和消息推送(Publish)操作。
  • 上传并验证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 所示。 表1 提示 参数名称 取值样例 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天,您可根据实际业务场景和需要进行调整。
  • 生成设备证书 使用OpenSSL工具为设备证书生成密钥对(设备私钥): openssl genrsa -out deviceCert.key 2048 使用设备密钥对,生成证书签名请求文件: openssl req -new -key deviceCert.key -out deviceCert.csr 生成证书签名请求文件时,要求填写证书唯一标识名称(Distinguished Name,DN)信息,参数说明如下表2所示。 表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 []: 可选公司名称,如您不设置,可以直接回车 / 使用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天,您可根据实际业务场景和需要进行调整。
  • 连接鉴权 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)操作。
  • 设备引导 下载并修改华为SDK示例代码进行设备引导(这里以java sdk代码为示例)。 用IDEA/Eclipse打开SDK代码工程,修改DEMO示例BootstrapSample中的参数,其中deviceId和secret替换为步骤3中生成的设备ID和密钥即可,bootstrapUri为获取设备发放终端节点对应的终端节点。 运行DEMO程序,看到如下日志,代表设备发放成功,并且已经收到设备发放下发的设备接入地址。如果程序运行没报错,在对应的设备接入平台可以看到设备,并已在线。
  • X.509证书认证 X.509是一种用于通信实体鉴别的数字证书,物联网平台支持设备使用自己的X.509证书进行认证鉴权。使用X.509认证技术时,设备无法被仿冒,避免了密钥被泄露的风险。 使用X.509证书认证的完整操作流程为: 1. 在平台上传设备CA证书并完成验证(或使用华为云证书服务的私有CA); 2. 创建设备或注册组时,认证方式选择X.509证书认证,并关联已认证的设备CA证书; 3. 开发设备端,将X.509证书及其私钥烧录到设备上; 4. 设备在与平台双向认证过程中,设备验证平台证书,平台使用设备CA证书验证设备证书并验证设备证书与设备的关联关系。
  • 场景示例矩阵 表1 注册/注册组 认证类型 策略类型 示例 注册 证书认证 证书策略 MQTT X.509证书认证设备使用证书策略发放示例 注册 密钥认证 静态策略 MQTT 密钥设备使用静态策略发放示例 注册组 证书认证 自定义策略 MQTT 注册组自定义策略发放示例 注册组 云证书认证 证书策略 MQTT 华为云证书注册组发放示例 注册组 证书认证 自定义策略 MQTT 注册组自定义策略发放示例 注册 密钥认证 静态策略(跨账号) MQTT 密钥设备跨账号使用静态策略发放示例
  • Topic说明 设备发放平台作为消息接收方时,已默认订阅了相关Topic,设备只要向对应Topic发送消息,设备发放平台就可以接收。 设备作为消息接收方时,需要先订阅相关Topic,这样设备发放平台向对应Topic发送消息时,设备才能接收到。设备需要根据具体实现的业务来决定订阅哪些Topic。 Topic 消息发送方 (Publisher) 消息接收方 (Subscriber) 说明 $oc/devices/{device_id}/sys/bootstrap/up 设备 设备发放平台 设备向发放服务请求对应设备接入实例的引导信息。 $oc/devices/{device_id}/sys/bootstrap/down 设备发放平台 设备 设备接收发放服务下发的引导信息。
  • MQTT概述 MQTT标准规范参见《mqtt-v3.1.1-os.pdf》。 MQTT的语法和接口细节,请以此标准为准。设备发放目前仅支持MQTTS/HTTPS这种安全接入的设备进行发放,暂不支持MQTT/HTTP这种非安全接入的设备进行发放。 MQTT消息分为固定报头(Fixed header)、可变报头(Variable header)和有效载荷(Payload)部分。 固定报头(Fixed header)和可变报头(Variable header)格式的填写直接MQTT标准规范。有效载荷(Payload)部分在PUB消息中可以由应用定义,即设备和设备发放平台之间自己定义。 下面主要介绍CONNECT、SUB和PUB消息格式的填写。 CONNECT - Client requests a connection to a server 有效载荷(Payload)中的主要参数填写,具体参见MQTT CONNECT连接鉴权。 SUBSCRIBE - Subscribe to named topics 有效载荷(Payload)中的主要参数填写:Topic name,填写为设备想要订阅的主题消息,目前填写为设备自己的topic,具体参见Topic说明。 PUBLISH - Publish message 可变报头(Variable header):Topic name,设备发往设备发放平台时,为平台的Topic name,设备接收消息时,为设备的Topic name,具体参见Topic说明。 有效载荷(Payload)中的主要参数填写:为完整的数据上报和命令下发的消息内容,目前是一个JSON对象。
  • 生成设备证书 使用OpenSSL工具为设备证书生成密钥对(设备私钥): openssl genrsa -out deviceCert.key 2048 使用设备密钥对,生成证书签名请求文件: openssl req -new -key deviceCert.key -out deviceCert.csr 生成证书签名请求文件时,要求填写证书唯一标识名称(Distinguished Name,DN)信息,参数说明如下表2所示。 表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 []: 可选公司名称,如您不设置,可以直接回车 / 使用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天,您可根据实际业务场景和需要进行调整。
  • 连接鉴权 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)操作。
  • 上传并验证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 所示。 表1 提示 参数名称 取值样例 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天,您可根据实际业务场景和需要进行调整。
  • 连接鉴权 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 和Password 参数参考MQTT CONNECT连接鉴权参数说明。 选择开启 SSL/TLS,勾选CA certificate file,CA Certificate File指定为物联网平台根证书(请先下载物联网平台的根证书,解压后,选择其中c或java目录下PEM后缀的文件)的本地路径。 完成以上步骤后,单击“Apply”和“OK”保存,并在配置文件框中选择刚才创建的文件名,单击“Connect”,当右上角圆形图标为绿色时,说明连接设备发放服务成功,可进行订阅(Subscribe)和消息推送(Publish)操作。
  • 操作步骤 默认用户已经开通过共享版设备接入。访问设备接入服务,单击“立即使用”进入“设备接入控制台”,通过“设备接入”进入到“设备发放服务”页面,单击“授权开通”对服务进行授权。 开通专享实例,参考设备接入实例开通管理。 根据业务进行同步操作,如果设备量大,选择按照资源空间同步。 进入设备发放“设备数据同步”界面,单击右上角“创建同步任务”。 同步方式选择“按资源空间整体同步”,将所有必填选项选择完毕后,单击“确认创建”即可,设备发放会自动把对应资源空间的产品、证书和设备数据同步过去。 如果设备量小,可以选择“指定设备同步”方式。 进入“设备数据同步”界面,单击右上角“创建同步任务”。 同步方式选择“指定设备同步”,将所有必填选项选择完毕后,单击“确认创建”。设备发放会自动把对应产品下的设备数据同步过去,同步后的设备状态保持一致。 单击“任务ID”或者“详情”,可以看到刚创建的任务的详细内容,并且可以使用“高级搜索”对同步设备进行过滤查询操作。 当同步任务类型为“指定设备同步”时,此类任务下所有同步设备均属于同一应用、同一产品。因此在进行同步设备列表的“高级搜索”时,搜索项“所属产品”和“所属资源空间”均为空。 在设备同步详情页,可以查看单个设备的信息和设备的发放记录。
  • 场景说明 本文介绍如何通过设备发放将共享实例中的存量设备数据同步到专享实例。 相比于共享实例,专享实例运行在用户指定的虚拟私有云内,用户可以使用独立分配的公网和私网IP接入物联网平台。用户购买的资源完全独享,资源安全性和隔离性更高,是企业设备上云的首选,实例详情介绍参考华为云设备接入IoTDA实例介绍。 若用户已经开通共享实例,设备也在共享实例上运行,但是用户想让设备运行在专享实例上,可以将存量设备同步到用户购买的专享实例(企业版)中管理。通过设备发放,可以很方便地将共享实例中的设备同步到新的专享实例。
  • 注意事项 使用设备发放服务跨实例同步设备时,如果是指定资源空间和设备同步,同步数据仅包括设备连接新实例认证需要的身份信息,包括产品、证书和设备;不包括原实例中的设备分组、服务端订阅、规则引擎配置和平台日志等;支持同步设备的状态。 目前除了支持资源空间和设备的同步,还能指定插件的同步。 设备同步成功后,可以通过设备发放获取到新实例的地址,也可以直接更新设备固件,对接新的实例。如果用户的设备不支持更新固件,也没有对接设备发放,那么可以提交工单说明诉求。 设备同步到新实例后,应用侧调用设备接入实例API管理设备时,所有相关API调用的InstanceId需修改为新实例ID。
  • 设备触发放流程 配置连接参数。 证书认证设备如何使用MQTT.fx接入设备发放请参见MQTT X509证书认证接入示例。 MQTT Broker Profile Settings Broker Address填写设备发放设备侧接入地址,Broker Port填写设备发放设备侧接入端口,Client ID按规则([设备ID]_0_0_[10位日期时间])填写,具体规则参见MQTT CONNECT连接鉴权。 SSL/TLS 由于设备使用证书认证方式,“Enable SSL/TLS”勾选开启,选择Self signed certificates,CA File填写用于签发设备发放设备侧接入SSL/TLS通道证书的CA证书路径,Client Certificate File和Client Key File填写使用已上传并验证了的CA证书签发的设备证书和设备证书私钥路径。如证书为PEM格式,请勾选“PEM Formatted”。 具体配置请参见下图: “User Credentials”的“User Name”字段填写设备ID。具体配置参见下图: 连接鉴权。 连接参数配置完成后,单击“Connnect”。若右上角圆圈呈现绿色,说明设备已成功上设备发放平台。 订阅接收引导消息Topic。 参照设备接收引导信息填写用于接收引导地址的Topic,单击“Subscribe”订阅该Topic。若订阅Topic填写框下方的已订阅Topic列表中存在该Topic,则订阅成功。 发送请求引导消息。 参照设备请求引导消息填写发送请求引导消息的Topic,单击“Publish”向该Topic推送消息。 查看订阅的Topic,很快在订阅Topic下,接收到了目的接入点的设备侧接入地址。 进入函数服务控制台,通过查看使用的函数的日志,可看出自定义策略发放设备过程中,该函数被成功触发且正确执行。 进入到设备发放控制台,可查看到一条该设备的发放记录。 至此,您已成功完成了,使用设备发放和函数服务将证书认证的设备通过自定义策略触发函数将设备发放到指定的设备接入实例中。
  • 设备免注册接入 下载并修改华为SDK示例代码进行设备引导(这里以java sdk代码为示例)。 使用IDEA/Eclipse打开SDK代码工程,修改iot-device-demo目录下的DEMO示例“BootstrapSelfRegSample”中的参数。 ScopeId从设备发放的注册组页面中获取; deviceId由客户自主规划且未在平台注册(需注意平台要求deviceId全局唯一); 设备证书指定为“控制台开发”中生成的设备证书; bootstrapUri为上述终端节点。 图11 修改demo示例 运行DEMO程序,看到如下日志,代表设备发放成功,并且已经收到设备发放下发的设备接入地址。如果程序运行正常,在对应的设备接入实例可以看到该设备,且该设备已在线。 图12 日志信息 收到设备发放下发的设备接入地址后,需要关闭设备侧的设备发放的连接,用的新的URL地址与设备接入通信,进行相关业务。 图13 关闭连接示例代码 说明: DeviceId即设备ID,用于唯一标识一个设备。设备需使用未注册的DeviceId进行免注册接入,不同设备的DeviceId不同。 在客户实际业务场景中,推荐一个设备使用一个设备证书,不建议多个设备共用一个设备证书。
  • 添加证书策略 添加证书策略,发放CA证书到指定的IoTDA,并且由此CA签发的设备证书都会发放到指定的IoTDA。 图8 添加证书策略 进入“策略”界面,单击展开“证书策略”,单击“添加实例”。 图9 添加实例 按照下方参数说明填写关键参数信息后,单击“确定”。 表4 参数信息 参数名称 说明 示例 证书名称 即所要根据证书属性将设备发放到指定的目标区域,选择对应的证书。 将需要通过证书“certificates”发放的设备发放至华北-北京四的物联网平台。 需通过证书“certificates”发放的设备:WaterMeter-Beijing0001、WaterMeter-Beijing0002 证书名称:certificates 发放区域:华北-北京四 发放应用:beijing-app1 发放区域 发放到指定区域后,设备将接入对应区域的设备接入服务。 所选区域未开通设备接入服务时,如果确定添加实例,系统将自动为您开通设备接入服务。不同区域设备接入服务价格不同,收费详情请参考价格说明。 发放应用 选择对应设备接入服务区域已创建的应用。在物联网平台中,设备由应用统一管理。 如果对应设备接入服务区域未创建应用,需要前往对应服务创建应用。
  • 创建注册组 MQTT证书接入的设备,可以在设备发放创建一个注册组,绑定对应的CA证书和自定义策略,可以实现批量设备的自注册,实现设备一键上电即可上云的动作,可在注册组详情中查看该注册组下所有的设备。 进入“设备-注册组”界面,单击右上角“新增注册组”。 图10 新增注册组 按照下方参数说明填写关键参数信息后,完成创建。 表5 参数信息 参数名称 说明 注册组名称 注册组的唯一标识。 选择证书 用于和注册组绑定,同一个证书只能同时绑定一个注册组,不能同时绑定多个注册组。 发放策略 当前只支持“自定义策略”,同时需要选择所要运行的函数。
  • 生成设备证书 使用OpenSSL工具为设备证书生成密钥对(设备私钥): openssl genrsa -out deviceCert.key 2048 使用设备密钥对,生成证书签名请求文件: openssl req -new -key deviceCert.key -out deviceCert.csr 生成证书签名请求文件时,要求填写证书唯一标识名称(Distinguished Name,DN)信息,参数说明如下表6所示。 表6 参数说明 提示 参数名称 取值样例 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证书”。 图3 上传证书 在“上传CA证书”页面,填写“证书名称”,单击“添加文件”,上传此前“制作CA证书”步骤中生成的“CA证书(rootCA.crt文件)”,单击“确定”。 图4 上传证书 上传的CA证书初始状态为“未验证”,需要完成“验证CA证书”过程,方可正常使用该CA证书。 表3 证书状态表 CA证书状态 说明 已验证 可正常使用。 未验证 不可正常使用,待验证通过后,方可正常使用。 已过期 CA证书已过期,需更新,但不影响平台使用该CA证书验证对应的设备证书。 即将过期 CA证书30天内即将过期,需及时更新。
  • 制作CA证书 本文以Windows环境为例,介绍通过Openssl工具制作CA证书和验证证书的方法。 以下“生成密钥对(rootCA.key)”和“生成CA证书(rootCA.crt)”为操作过程中需要使用到的两个文件。 具体步骤: 在浏览器中访问这里,下载并进行安装OpenSSL工具,安装完成后配置环境变量。 在 D:\certificates 文件夹下,以管理员身份运行cmd命令行窗口。 生成密钥对(rootCA.key): 生成“密钥对”时输入的密码在生成“证书签名请求文件”、“CA证书”,“验证证书”以及“设备证书”时需要用到,请妥善保存。 openssl genrsa -des3 -out rootCA.key 2048 使用密钥对生成证书签名请求文件: 生成证书签名请求文件时,要求填写证书唯一标识名称(Distinguished Name,DN)信息,参数说明如下表2所示。 表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天,您可根据实际业务场景和需要进行调整。
  • 验证CA证书 对于已上传的CA证书,平台要求用户完成“验证CA证书”过程,以验证用户具备该CA证书的签发能力。 操作步骤 登录设备发放控制台。 在设备发放控制台,左侧导航窗格中,选择“证书”,单击“证书列表”条目的操作栏中的“验证证书”。 图5 验证证书 在上传验证证书页面,单击“生成验证码”,单击“复制图标”复制此CA证书的随机验证码。 图6 复制验证码 CA证书验证码有效期为一天,请及时使用验证码生成验证证书并完成验证。 验证码的生成为替换机制,即对于一个CA证书,即使此前的验证码未过期,也将被新生成的验证码替换。 使用OpenSSL工具为验证证书生成密钥对。 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 36500 -sha256 生成验证证书用到的“rootCA.crt”和“rootCA.key”这两个文件,为“制作CA证书”中所生成的两个文件。 “-days”后的参数值指定了该证书的有效天数,此处示例为36500天,您可根据实际业务场景和需要进行调整。 上传验证证书进行验证。 图7 上传验证证书
共100000条