设备接入 IoTDA设备接入 IoTDA

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

MQTT X.509证书认证设备使用证书策略发放示例

制作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. 添加证书策略,发放CA证书到指定的IoTDA,并且由此CA签发的设备证书都会发放到指定的IoTDA。

  5. 在设备发放控制台,注册MQTT设备,其中安全模式选择X.509认证模式,选择对应的CA证书,填写证书指纹,注册X.509认证设备。

    证书指纹是根据证书生成的唯一识别证书的标识。如果支持设备自注册,在设备首次认证时不会去认证设备ID和设备证书的关系。

  6. 引导设备。

    MQTT.fx 是目前主流的 MQTT 桌面客户端,它支持 Windows, Mac, Linux,可以快速验证是否可以与设备发放服务进行连接并发布或订阅消息。

    本文主要介绍 MQTT.fx 如何与华为设备发放交互,其中设备发放服务MQTT的南向接入地址请参考步骤1 获取终端节点

    1. 打开 MQTT.fx 下载页面,下载并安装 MQTT.fx 客户端(以 MQTT.fx 1.7.0 for Windows版本为例)。
    2. 打开 MQTT.fx 客户端程序,单击“设置”

    3. 填写 Connection Profile 相关信息。其中General 可以使用工具默认信息。

      其中Broker Address和Broker Port可以参考步骤1 获取终端节点,Client ID 可以参考MQTT CONNECT连接鉴权参数说明。

    4. 填写 User Credentials 信息。

      其中Username 参考MQTT CONNECT连接鉴权参数说明(无需填写Password)。

    5. 选择开启 SSL/TLS,勾选 Self signed certificates,配置相关证书内容。

      • CA File为设备发放对应的CA证书。
      • Client Certificate File为设备的设备证书。
      • Client Key File为设备的私钥。
    6. 完成以上步骤设置后,单击“Apply”“OK”保存,并在配置文件框中选择刚才创建的文件名,单击“Connect”,当右上角圆形图标为绿色时,说明连接设备发放服务成功,可进行订阅(Subscribe)和消息推送(Publish)操作。

    7. 按照设备接收引导信息topic填写对应的topic,单击“Subscribe”进行订阅。订阅成功如下所示:

    8. 按照设备请求引导信息topic填写对应的topic,单击“Publish”进行消息推送。

      消息推送成功如下所示,在Subscribe的topic下会返回对应设备的设备接入服务的地址。

分享:

    相关文档

    相关产品