设备接入 IoTDA设备接入 IoTDA

更新时间:2021/08/17 GMT+08:00
分享

MQTT 注册组静态策略发放示例

制作CA证书

本文以Windows环境为例,介绍通过Openssl工具制作CA证书和验证证书的方法。

以下“生成密钥对(server.key)”和“生成CA证书(server.crt)”为操作过程中需要使用到的两个文件。

  1. 在浏览器中访问这里,下载并进行安装OpenSSL工具,安装完成后配置环境变量。
  2. 在 D:\certificates 文件夹下,以管理员身份运行cmd命令行窗口。
  3. 生成密钥对(server.key):

    生成“密钥对”时输入的密码在生成“证书请求文件”、“CA证书”以及“验证证书”时需要用到,请妥善保存。

    openssl genrsa -des3 -out server.key 2048

  4. 使用密钥对生成证书请求文件:

    生成证书请求文件时会要求填入以下信息:

    Country Name (2 letter code) []:输入国家代码,如: CN

    State or Province Name (full name) []:输入省份,如:GuangDong

    Locality Name (eg, city) []:输入城市,如:ShenZhen

    Organization Name (eg, company) []:输入组织机构(或公司名)

    Organizational Unit Name (eg, section) []:输入机构部门

    Common Name (eg, fully qualified host name) []: 输入域名

    Email Address []:输入邮箱地址

    Please enter the following 'extra' attributes

    to be sent with your certificate request

    A challenge password []:输入证书密码,如果不想设置密码,可以直接回车

    openssl req -new -key server.key -out server.csr

  5. 生成CA证书(server.crt):

    openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

设备发放控制台操作

  1. 获取终端节点。

    区域名称

    区域

    终端节点(Endpoint)

    端口

    协议

    华北-北京四

    cn-north-4

    iot-bs.cn-north-4.myhuaweicloud.com

    8883

    MQTTS

  2. 登录设备发放控制台,进入“证书”界面,单击右上角“上传CA证书”,填写“证书名称”并上传上述“制作CA证书”步骤后生成的“CA证书(server.crt文件)”,单击“确定”。

  3. 验证2中上传的CA证书。

    1. 为私有密钥验证证书生成密钥对。
      openssl genrsa -out client.key 2048
    2. 获取随机验证码。

    3. 利用此验证码生成证书请求文件CSR。
      openssl req -new -key client.key -out client.csr

      CSR文件的Common Name (e.g. server FQDN or YOUR name) 需要填写此验证码。

    4. 使用由CA私有密钥签名的CSR创建私有的验证证书(client.crt)。
      openssl x509 -req -in client.csr -CA server.crt -CAkey server.key -CAcreateserial -out client.crt -days 500 -sha256

      生成验证证书用到的“server.crt”和“server.key”这两个文件,为“制作CA证书”中所生成的两个文件。

    5. 上传验证证书进行验证。

  4. 添加静态策略。

    “关键字”为注册组名称中的关键字。设备发放时,注册组下的设备的设备名称为“注册组名称+设备ID”,如果包含设置的关键字,则可按该实例进行发放。

  5. 创建注册组。

  6. 下载并修改华为SDK示例代码进行设备引导(这里以java sdk代码为示例)。

    用IDEA/Eclipse打开SDK代码工程,修改DEMO示例BootsrapSelfRegSample中的参数。

    其中deviceId可以自己随意命名,用一个唯一标识设备身份的ID,也可用设备证书的唯一标识身份,设备证书使用者的CN。(因为注册组的场景不存在选择产品所以命名需要注意:如果命名字符串有“_”,那么第一项必须为对应设备接入已经存在的产品ID,如果不包括“_”,那么可以随意命名)。

    ScopeId可以在设备发放页面点击注册组查询。

    bootstrapUri为步骤1对应的终端节点。

    keyStore的参数为对应注册组的CA证书签发的设备证书,私钥文件对应的本地目录。如果私钥不加密,那么不需要填写keyPassword,对应bootstrapClient = new BootstrapClient(bootstrapUri, deviceId, keyStore, “”, scopeId)。

    运行DEMO程序,看到如下日志,代表设备发放成功,并且已经收到设备发放下发的设备接入地址。如果程序运行没报错,在对应的设备接入平台可以看到设备,并已在线。

分享:

    相关文档

    相关产品