达实AIoT
文档中心
快速开始
  • 单点登录对接
  • 开放接口对接
  • 领域模型事件对接
  • 私有部署
  • 应用开发指南
  • DASDesign
IoT平台
应用平台
  • 低代码工具
  • 基础服务
  • 系统运维
  • 场景模型
应用
  • 物业管理
  • 数据中心
  • 智慧园区IPS
  • 园区服务
  • 物业管理
  • 场景模型
  • 会议
  • 门禁
  • 停车场
文档中心
快速开始
  • 单点登录对接
  • 开放接口对接
  • 领域模型事件对接
  • 私有部署
  • 应用开发指南
  • DASDesign
IoT平台
应用平台
  • 低代码工具
  • 基础服务
  • 系统运维
  • 场景模型
应用
  • 物业管理
  • 数据中心
  • 智慧园区IPS
  • 园区服务
  • 物业管理
  • 场景模型
  • 会议
  • 门禁
  • 停车场
期待您的声音
  1. 开放协议接入
  • 平台介绍
    • 平台概述
    • 接入方式
    • 快速入门
    • 应用场景
    • 技术架构
    • 技术优势
  • 操作指南
    • 设备安全认证
      • 概述
      • 一机一密
      • 一型一密
      • X.509认证
    • 实例
      • 实例管理
    • 产品管理
      • 创建单个产品
      • 批量创建产品
      • 删除产品
      • 方法
      • Topic管理
      • 扩展信息
      • 编解码插件
    • 物模型
      • 物模型介绍
      • 产品品类
      • 单个添加物模型
      • 批量添加物模型
      • 物模型TSL字段说明
      • 物模型支持的数据类型
    • 设备管理
      • 创建单个设备
      • 批量创建设备
      • 查看设备
      • 设备状态
      • 删除设备
      • 启停设备
      • 在线调试
      • 子设备
      • 设备影子
      • 标签
      • 文件管理
    • 规则引擎
      • 数据转发
      • SQL语句
      • 触发事件列表
        • 设备添加
        • 设备删除
        • 设备更新
        • 设备属性上报
        • 设备状态变更
        • 批量任务状态变更
        • 产品添加
        • 产品删除
        • 产品更新
        • 设备服务调用
        • 设备事件上报
        • 批量任务ota升级
        • 设备消息(按自定义topic上报消息)
    • 运维监控
      • OTA升级
      • 设备模拟器
      • 消息跟踪
    • 平台融合
      • 平台融合
    • 总览
      • 总览
    • 群组
      • 群组
    • 数据存储
      • 数据存储
    • 审计日志
      • 日志查询
      • 日志配置
  • 开发参考
    • 第三方子系统接入指南
    • 云端开发指南
      • 设备中心API参考
        • 设备属性控制(支持批量)
        • 设备服务控制(同步)
        • 设备列表查询
        • 获取设备属性列表
        • 获取设备事件列表
        • 获取设备服务列表
        • 获取属性当前数据
        • 获取设备属性历史数据
        • 获取设备的属性的实时值
        • 批量获取多个设备的属性当前数据
        • 批量获取设备位置信息
        • 分页获取设备统计信息
        • 分页查询符合条件的设备列表
        • 项目绑定设备
        • 项目解绑设备
        • 获取设备详情
        • 发送设备属性
        • 发送设备服务(同步)
        • 获取设备全部属性
        • 查询设备属性当前数据
        • 获取设备全部事件
        • 获取设备全部服务
        • 分页查询属性历史数据
      • IoT平台API参考
        • 产品管理
          • 产品分页
          • 产品详情
          • 新增产品
          • 删除产品
          • 更新产品
          • 获取物模型信息
          • 获取产品信息列表(带连接信息)
        • 设备管理
          • 修改设备
          • 批量删除设备
          • 新增设备
          • 分页查询符合条件的设备集合
          • 启停设备
          • 获取设备详情
          • 获取设备服务历史数据
          • 获取设备事件历史数据
          • 获取设备属性历史数据
          • 新增设备
          • 修改设备
          • 获取设备详情
          • 启停设备
          • 批量删除设备
          • 分页查询符合条件的设备集合
          • 查询所有属性数据
          • 分页查询属性历史数据
          • 分页查询服务历史数据
          • 分页查询事件历史数据
        • 设备命令
          • 发送服务
          • 同步发送服务
        • 设备属性
          • 查询所有属性数据
          • 在线调试-下发属性(同步)
        • 设备组管理(群组)
          • 解绑设备
          • 修改群组
          • 删除群组
          • 新增群组
          • 绑定设备
          • 列表查询
          • 分页查询符合条件的设备集合
          • 新增群组
          • 修改群组
          • 删除群组
          • 群组绑定设备
          • 群组解绑设备
        • 设备影子
          • 获取设备影子数据
          • 设置期望值
        • 设备控制
          • 下发属性
          • 下发属性(同步)
          • 发送服务
          • 发送服务(同步)
        • 云端数据上报
          • 云端上报设备属性
          • 云端上报设备事件
    • 设备接入
      • 设备接入概览
      • 设备接入手册
      • 开放协议接入
        • MQTT协议接入
        • 基于MQTT协议的设备动态注册
        • MQTT协议接入 - X.509证书认证
        • CoAP协议接入
        • CoAP协议接入 - Java代码示例
        • HTTP协议接入
      • 消息通信Topic
        • Topic定义
        • 报文定义
          • 系统基本功能 - 心跳
          • 系统基本功能 - 时间校准
          • 属性 - 属性上报
          • 属性 - 批量属性上报
          • 属性 - 属性查询全量
          • 属性 - 属性写值
          • 属性 - 属性查询
          • 事件 - 事件上报
          • 服务 - 服务下发
          • 在线状态 - 在线状态查询全量
          • 在线状态 - 子设备上线
          • 在线状态 - 子设备下线
          • 动态注册 - 子设备动态注册
          • 文件管理 - 获取文件上传URL
          • ota升级 - 升级包信息
          • ota升级 - 下载进度上报
          • ota升级 - 升级进度上报
          • ota升级 - 重新下发ota升级任务上报
          • ota升级 - 升级成功上报
          • ota升级 - 设备版本上报
          • 远程调用 - RPC通道
          • 设备信息 - 获取设备信息
          • 设备信息 - 获取子设备信息
          • 设备影子 - 获取影子数据
      • 设备接入SDK
        • .NET Link SDK
          • 物模型通信
          • 环境要求与配置
          • 认证与连接
          • 发布记录
          • 基于MQTT Topic通信
        • Java Link SDK
          • 发布记录
          • 环境要求与配置
          • 认证与连接
          • 物模型通信
        • Python Link SDK
          • 获取SDK
          • 认证与连接
          • 物模型通信
        • Go Link SDK
          • 物模型通信
          • 认证与连接
          • 获取SDK
        • Node.js Link SDK
          • 发布记录
          • 环境要求与配置
          • 认证与连接
          • 物模型通信
        • C Link SDK
          • 发布记录
          • 环境要求与配置
          • 认证与连接
          • 物模型通信
    • PulsarMQ服务端开发指南
      • 设备属性上报的订阅
      • 设备事件上报的订阅
  • 常见问题
    • IoT物联网平台相关问题
    • 应用集成相关问题
  1. 开放协议接入

MQTT协议接入 - X.509证书认证

MQTT协议接入 - X.509证书认证#

X.509是一种用于通信实体鉴别的数字证书,物联网平台支持设备使用自己的X.509证书进行认证鉴权。使用X.509认证技术时,设备无法被仿冒,避免了密钥被泄露的风险。
注册X.509证书认证的设备前,您需要先在物联网平台上传设备的CA证书,然后在注册设备时将设备证书同设备进行绑定。本文介绍如何在物联网平台上传设备CA证书,以及注册X.509证书认证的设备。
基本流程#
1.
自制设备CA根证书(或找CA机构签发)eg:lightRootCA.pem,lightRootCA.key
将lightRootCA.pem上传至 “设备接入> CA证书” 页面,上传后会生成验证码。同时保存好lightRootCA.pem,lightRootCA.key用于后续签发验证证书和设备连接CA证书
2.
使用设备CA根证书和密钥签出认证证书verificationCert.pem,在签发过程中的Common Name项中填入上传lightRootCA.pem获取的验证码
3.
验证通过后,使用设备CA根证书开始制作用于设备连接的CA证书,eg:deviceCert.pem,deviceCert.key
4.
服务端根证书下载地址 从该地址下载 服务端根证书,搭配deviceCert.pem,deviceCert.key连接到服务器
限制说明#
当前只有通过MQTT接入的设备支持使用X.509证书进行设备身份认证。
每个实例最多上传100个设备CA根证书。
#
制作设备CA根证书详细流程(自签用于调试测试)#
本文以Windows环境为例,介绍通过Openssl工具制作调测证书的方法,生成的证书为PEM编码格式的证书。
1.
在浏览器中访问这里,下载并进行安装OpenSSL工具。
2.
以管理员身份运行cmd命令行窗口。
3.
执行cd c:\openssl\bin(请替换为openssl实际安装路径),进入openssl命令视图。
4.
执行以下命令生成生成密钥对。(建议设备CA根证书和密钥名称带一些信息,以方便之后找到该设备根CA根证书和密钥签出设备连接证书)
openssl genrsa -out lightRootCA.key 2048
5.
执行以下命令,使用密钥对中的私有密钥生成 CA 证书。
openssl req -x509 -new -nodes -key lightRootCA.key -sha256 -days 1024 -out lightRootCA.pem
系统提示您输入如下信息,所有参数可以自定义。
Country Name (2 letter code) [AU]:国家,如CN。
State or Province Name (full name) []: 省份,如GD。
Locality Name (for example, city) []:城市,如SZ。
Organization Name (for example, company) []:组织,如Das。
Organizational Unit Name (for example, section) []:组织单位,如IoT。
Common Name (e.g. server FQDN or YOUR name) []: 名称(不为空!可以填入根证书相关信息),如das light。
Email Address []:邮箱地址,如1234567@163.com。
在openssl安装目录的bin文件夹下,可以看到lightRootCA.pem和lightRootCA.key,将lightRootCA.pem上传到平台,上传后证书状态显示为“未验证”,并附带有验证码,要想使用该设备CA根证书需要上传验证证书
上传验证证书详细流程#
验证证书是用来证明您拥有该设备CA根证书。验证证书是由设备CA根证书对应的私钥创建的,请参考如下操作制作验证证书。
1.
执行如下命令为私有密钥验证证书生成密钥对。
openssl genrsa -out verificationCert.key 2048
2.
执行如下命令为私有密钥验证证书创建CSR(Certificate Signing Request)。
openssl req -new -key verificationCert.key -out verificationCert.csr
系统提示您输入如下信息,Common Name填写为验证证书的验证码,其他参数自定义。
Country Name (2 letter code) [AU]:国家,如CN。
State or Province Name (full name) []: 省份,如GD。
Locality Name (for example, city) []:城市,如SZ。
Organization Name (for example, company) []:组织,如Das。
Organizational Unit Name (for example, section) []:组织单位,如IoT。
Common Name (e.g. server FQDN or YOUR name) []:验证证书的验证码必填!!!在对应的设备CA根证书的详情页面获取
Email Address []:邮箱地址,如1234567@163.com。
Password[]:密码,如1234321。
Optional Company Name[]:公司名称,如Das。
3.
执行以下命令使用CSR创建私有密钥验证证书。
openssl x509 -req -in verificationCert.csr -CA lightRootCA.pem -CAkey lightRootCA.key -CAcreateserial -out verificationCert.pem -days 500 -sha256
        在openssl安装目录的bin文件夹下,获取生成的验证证书(verificationCert.pem)。
4.
选择对应证书,然后单击“上传验证证书”。
5.
在弹出的对话框中,单击“添加文件”,然后单击“确认”。上传验证证书后,证书状态变为“已验证”,表明您拥有该CA证书。
制作用于设备连接的CA证书详细流程#
1.
以管理员身份运行cmd命令行窗口,执行cd c:\openssl\bin(请替换为openssl实际安装路径),进入openssl命令视图。
2.
执行如下命令生成密钥对。
openssl genrsa -out deviceCert.key 2048
3.
执行如下命令为设备证书创建CSR(Certificate Signing Request)。
openssl req -new -key deviceCert.key -out deviceCert.csr
系统提示您输入如下信息,所有参数可以自定义
Country Name (2 letter code) [AU]:国家,如CN。
State or Province Name (full name) []: 省份,如GD。
Locality Name (for example, city) []:城市,如SZ。
Organization Name (for example, company) []:组织,如Das。
Organizational Unit Name (for example, section) []:组织单位,如IoT。
Common Name (e.g. server FQDN or YOUR name) []: 名称,如zhangsan。
Email Address []:邮箱地址,如1234567@163.com。
Password[]:密码,如1234321。
Optional Company Name[]:公司名称,如Das。
4.
执行以下命令使用CSR创建设备证书。
openssl x509 -req -in deviceCert.csr -CA lightRootCA.pem -CAkey lightRootCA.key -CAcreateserial -out deviceCert.pem -days 500 -sha256
在openssl安装目录的bin文件夹下,获取生成的设备证书(deviceCert.pem)。
使用证书连接服务器#
使用基于X.509证书的设备认证时,除服务端根证书,deviceCert.pem,deviceCert.key外还血需携带如下参数连接MQTT服务器: mqttClientId,mqttUsername,mqttPassword
变量名说明
mqttClientId格式为deviceId&productId,例如:device1&product1
mqttUsername任意非空字符串
mqttPassword任意非空字符串

期待您的宝贵建议

微信扫描二维码,为我们的AIoT产品提出您的宝贵建议,用户体验是我们坚持不懈的追求。

微信扫描二维码
修改于 2023-12-15 01:15:20
上一页
基于MQTT协议的设备动态注册
下一页
CoAP协议接入
Built with