2021-07-12-在mosquitto和Node-Red间使用基于的MQTTS双向认证通讯( 私有CA)
@[TOC](在mosquitto和Node-Red间使用基于的MQTTS双向认证通讯( 私有CA) )
概念说明#
mosquitto(mqtt-broker)#
Eclipse Mosquitto是实现MQTT协议版本5.0、3.1.1和3.1的开源消息代理。MQTT协议提供了使用发布/订阅模型执行消息传递的轻量级方法。
相关信息见 https://mosquitto.org/
Node-Red(mqtt-client)#
Node-RED是构建物联网应用程序的一个强大工具,其重点是简化代码块的”连接”以执行任务。它使用可视化编程方法,允许开发人员将预定义的代码块(也叫做”节点”)连接起来执行任务。连接的节点,通常是输入节点、处理节点和输出节点的组合,当它们连接在一起时,构成一个”流”。最初是IBM在2013年末开发的一个开源项目,以满足他们快速连接硬件和设备到Web服务和其他软件的需求–作为物联网的一种粘合剂–它很快发展成为一种通用的物联网编程工具。
相关信息见 https://nodered.org/
openssl#
OpenSSL是用于传输层安全性(TLS)协议的健壮的,商业级,功能齐全的开源工具包,协议实现基于完整功能的通用密码库,该库也可以独立使用。
相关信息见 https://github.com/openssl/openssl
私有CA#
CA(Certificate Authority)证书颁发机构主要负责证书的颁发、管理以及归档和吊销。证书内包含了拥有证书者的姓名、地址、电子邮件帐号、公钥、证书有效期、发放证书的CA、CA的数字签名等信息。证书主要有三大功能:加密、签名、身份验证。
私有CA:在确定配置为CA的服务器上生成一个自签证书,并为CA提供所需要的目录及文件即可;
SSL单向/双向认证#
SSL单向认证只要求站点部署了ssl证书就行,任何用户都可以去访问(IP被限制除外等),只是服务端提供了身份认证。
双向认证则是需要服务端与客户端提供身份认证,只能是服务端允许的客户能去访问,安全性相对于要高一些。
相关信息
https://www.jianshu.com/p/fb5fe0165ef2
http://www.steves-internet-guide.com/ssl-certificates-explained/
搭建环境#
服务端#
操作系统:CentOS Linux release 7.8.2003
mosquitto: version 1.6.8
客户端#
Node-Red : mqtt 节点
基本流程#
详细操作#
软件安装#
mosquitto#
1 | What you'll need: |
认证配置#
详细见
mosquitto配置#
服务端最终配置mosquitto.conf
1 | port 8883 |
Node-Red配置#
- 上传ca.crt,client.key,client.crt
- 更新节点即可连接
注:私有CA不要勾选“验证服务器证书”
效果及测试#
- mqttfx.exe (订购主题)
连接
- 订购主题
- Node-Red (发布主题)
- 连接
- 发布数据
- 连接
- 数据通讯成功
总结#
本文描述了如何在mosquitto和Node-Red间,使用基于的MQTTS双向认证通讯( 私有CA),内容较多,需要使用者对MQTT、SSL、双向认证等有基本的认识。许多关联内容以链接形式在本文中引用,希望能对后来人有一定借鉴作用。
2021-07-12-在mosquitto和Node-Red间使用基于的MQTTS双向认证通讯( 私有CA)
https://blog.buqia.fun/2022/02/17/2021-07-12-在mosquitto和Node-Red间使用基于的MQTTS双向认证通讯(-私有CA)/