
# 设备自注册
#### 概述
设备自注册功能可以让用户没有在物联网平台上注册设备的前提下，在设备首次接入平台时自动完成设备的注册 ，设备自注册基于证书认证实现，通过设备证书携带设备信息。
图1设备自注册原理图   
![](https://support.huaweicloud.com/devg-iothub/figure/zh-cn_image_0000002305088850.png "点击放大")
#### 使用场景
- 自动注册设备：适用于不能提前在控制台（console）或通过调用API创建设备的场景，设备可以直接完成注册。
- 车联网场景：在车机启动时，设备连接平台会自动注册，上报数据，从而简化车端应用侧的开发。
- 多实例场景：企业客户购买多个IoTDA实例时，使用自注册功能可以无需提前在不同实例上发放注册设备，轻松实现设备跨实例管理。
 
#### 使用限制
- 单实例下自注册模板最多可以创建10个。
- 使用设备自注册功能，要求设备必须使用TLS协议，并且同时开启[服务器名称指示（SNI）](https://datatracker.ietf.org/doc/html/rfc3546#section-3.1)扩展，SNI中需要携带平台分配的域名（参考[如何获取平台接入地址](https://support.huaweicloud.com/iothub_faq/iot_faq_00123.html)）。
- 目前该功能仅支持MQTTS证书认证的场景。
- 上海一标准版目前暂不支持该功能。
  ![](https://support.huaweicloud.com/devg-iothub/public_sys-resources/notice_3.0-zh-cn.png)
  设备自注册后，设备鉴权依赖于自注册模板，修改或停用自注册模板可能会影响设备鉴权，请谨慎操作。
  
 
#### 操作步骤
1. 访问[设备接入服务](https://www.huaweicloud.com/product/iothub.html)，单击"管理控制台"进入设备接入控制台。选择您的实例，单击实例卡片进入。
2. 创建产品详细步骤参考：[创建产品](https://support.huaweicloud.com/usermanual-iothub/iot_01_0054.html)。
3. 左侧导航栏选择"设备 \> 自注册模板"，单击"创建模板"进入创建自注册模板页面，输入基本信息后输入单击"添加参数"选择对应的参数添加到模板；
   
   图2自注册模板-添加参数   
   ![](https://support.huaweicloud.com/devg-iothub/figure/zh-cn_image_0000002211525792.png "点击放大")
   
   
4. 在配置资源栏中选择设备名称、设备标识码、设备ID和产品ID；如[图3]所示，设备名称对应设备证书主题信息中的国家（CN），设备标识码对应设备证书主题信息中的通用名称（819519813）。
   
   图3设备证书信息   
   ![](https://support.huaweicloud.com/devg-iothub/figure/zh-cn_image_0000002338968045.png "点击放大")
   图4自注册模板-创建模板   
   ![](https://support.huaweicloud.com/devg-iothub/figure/zh-cn_image_0000002276704608.png "点击放大")
   ![](https://support.huaweicloud.com/devg-iothub/public_sys-resources/note_3.0-zh-cn.png)
   以下为平台预定义的在模板中可声明和引用的参数，证书必须包含模板中所引用的参数信息：
   - iotda::certificate::country：国家
   
   - iotda::certificate::organization：组织
   
   - iotda::certificate::organizational_unit：部门
   
   - iotda::certificate::distinguished_name_qualifier：可分辨名称
   
   - iotda::certificate::state_name：省份
   
   - iotda::certificate::common_name：通用名称
   
   - iotda::certificate::serial_number：序列号
    
   
   
5. 在配置策略栏中添加策略，设备自注册时将会自动绑定所添加的策略，有关设备策略详细使用参考：[设备Topic策略](https://support.huaweicloud.com/usermanual-iothub/iot_01_1111.html)。
6. 左侧导航栏选择"设备 \> 设备证书"进入设备证书页面，参考 [X.509证书认证的设备](https://support.huaweicloud.com/usermanual-iothub/iot_01_0055.html#section2)，上传CA证书到平台并通过验证，绑定[3]所创建的自注册模板并且开启自注册能力。
   
   图5CA证书-绑定模板   
   ![](https://support.huaweicloud.com/devg-iothub/figure/zh-cn_image_0000002512389101.png "点击放大")
   ![](https://support.huaweicloud.com/devg-iothub/public_sys-resources/note_3.0-zh-cn.png)
   注册设备所在的资源空间即为CA证书所在资源空间，请确保CA证书与模板中的产品ID在同一个资源空间下。
   
   
7. 在CA证书页签单击"调试"，上传[6]制作的设备证书，查看预解析后的设备信息是否符合预期。
   
   图6CA证书-调试证书   
   ![](https://support.huaweicloud.com/devg-iothub/figure/zh-cn_image_0000002512391403.png "点击放大")
   
   
#### 设备模拟器验证
使用MQTT.fx工具模拟设备接入平台完成设备自动注册。
1. 下载[MQTT.fx](https://iotda-document.obs.cn-north-4.myhuaweicloud.com/mqttfx-1.7.1-windows-x64.exe)（默认是64位操作系统，如果是32位操作系统，单击此处下载[MQTT.fx](https://iotda-document.obs.cn-north-4.myhuaweicloud.com/mqttfx-1.7.1-windows.exe)），安装MQTT.fx工具。
2. 打开MQTT.fx软件，参考[表1]设置连接参数后单击"Apply"应用。
   
    表1连接参数 
   | 参数                       | 说明                                                                                                                                     |
   |:---|:---|
   | Broker Address           | 平台接入地址（参考[如何获取平台接入地址](https://support.huaweicloud.com/iothub_faq/iot_faq_00123.html)）。                                                 |
   | Broker Port              | 8883                                                                                                                                   |
   | Client ID                | 无要求，任意字符串（建议按照[设备连接鉴权](https://support.huaweicloud.com/api-iothub/iot_06_v5_3009.html)的ClientId字段填写，按照平台规则填写的设备在模板停用后仍然可以通过平台的证书认证接入）。 |
   | User Name                | 无要求，任意字符串（建议按照[设备连接鉴权](https://support.huaweicloud.com/api-iothub/iot_06_v5_3009.html)的UserName字段填写，按照平台规则填写的设备在模板停用后仍然可以通过平台的证书认证接入）。 |
   | Password                 | 空                                                                                                                                      |
   | Enable SSL/TLS           | true                                                                                                                                   |
   | Self signed certificates | true                                                                                                                                   |
   | CA File                  | 平台CA证书（参考[证书资源](https://support.huaweicloud.com/devg-iothub/iot_02_1004.html#section3)）。                                               |
   | Client Certificate File  | 设备证书文件路径。                                                                                                                              |
   | Client Key File          | 设备证书私钥文件路径。                                                                                                                            |
   | Client Key Password      | 私钥密码，无密码则不需要填写。                                                                                                                        |
      
   图7MQTT.fx设置   
   ![](https://support.huaweicloud.com/devg-iothub/figure/zh-cn_image_0000001993096316.png "点击放大")
   图8连接参数图   
   ![](https://support.huaweicloud.com/devg-iothub/figure/zh-cn_image_0000002305248546.png "点击放大")
   图9证书信息图   
   ![](https://support.huaweicloud.com/devg-iothub/figure/zh-cn_image_0000002305088862.png "点击放大")
   
   
3. 单击"Connect"连接平台，看到MQTT.fx界面右上角圆圈转为绿色，即说明设备模拟器鉴权连接成功。 
   图10设备模拟器连接成功   
   ![](https://support.huaweicloud.com/devg-iothub/figure/zh-cn_image_0000002029655901.png "点击放大")
   
   
4. 进入设备接入控制台左侧导航栏，选择"设备 \> 所有设备"，在"设备列表"页签搜索框中通过"设备ID"或者"设备标识码"搜索设备，设备已经注册并处于在线状态。 
   图11设备-自注册设备详情   
   ![](https://support.huaweicloud.com/devg-iothub/figure/zh-cn_image_0000001950925178.png "点击放大")
   
   
 
