在mosquitto和Node-Red间使用基于的MQTTS双向认证通讯( 私有CA)

博客迁移

不恰饭的小站

在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 ```What you’ll need: Port 1883 to be open to incoming MQTT messages Step 1: Add the CentOS mosquitto repository to YUM’s

list of repositories $ yum install epel-release $ sudo yum install
mosquitto Step 2: Run mosquitto As of writing, no init.d script exists
for the CentOS distribution of mosquitto. However, it is a simple
enough matter to set it running as a daemon, you’ll just need to
restart it yourself whenever your machine gets restarted. $ sudo su $
mosquitto -d -c /etc/mosquitto/mosquitto.conf > /var/log/mosquitto.log
2>&1 Mosquitto should now be running! You can test it by pointing
mosquitto_pub and _sub at it. ```

认证配置 详细见

单向认证
双向认证

mosquitto配置 在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
服务端最终配置mosquitto.conf bash port 8883 cafile /etc/mosquitto/ca_certificates/ca.crt certfile /etc/mosquitto/certs/server.crt keyfile /etc/mosquitto/certs/server.key require_certificate true tls_version tlsv1.2 use_identity_as_username true

Node-Red配置

  1. 上传ca.crt,client.key,client.crt
  2. 更新节点即可连接
    注:私有CA不要勾选“验证服务器证书” 在这里插入图片描述

效果及测试

  1. mqttfx.exe (订购主题)
  2. 连接 在这里插入图片描述
  3. 订购主题 在这里插入图片描述
  4. Node-Red (发布主题)
  5. 连接 在这里插入图片描述
  6. 发布数据 在这里插入图片描述
  7. 数据通讯成功

总结 本文描述了如何在mosquitto和Node-Red间,使用基于的MQTTS双向认证通讯( 私有CA),内容较多,需要使用者对MQTT、SSL、双向认证等有基本的认识。许多关联内容以链接形式在本文中引用,希望能对后来人有一定借鉴作用。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
Node-RED使用Home Assistant组件和在Home Assistant中使用Node-RED插件有一些区别。这两种方法都可以实现Home Assistant与Node-RED的集成,但具体的实现方式和功能略有不同。 1. 在Node-RED使用Home Assistant组件: - 使用Home Assistant组件可以在Node-RED中直接与Home Assistant进行通信和控制。你可以使用Home Assistant节点来读取和写入Home Assistant实体的状态,执行服务调用,接收事件以及发送命令。 - Node-RED提供了丰富的节点和工具,使你能够轻松地构建自定义的自动化逻辑和工作流程,并与Home Assistant的设备、传感器和服务进行交互。 2. 在Home Assistant中使用Node-RED插件: - 使用Node-RED插件可以将Node-RED嵌入到Home Assistant的界面中,以便直接在Home Assistant中编辑和管理Node-RED的工作流程。 - 通过将Node-RED集成到Home Assistant中,你可以利用Home Assistant的实体和服务来触发和控制Node-RED的流程。你可以使用Home Assistant中的触发器(如状态变化、时等)来启动Node-RED流程,并通过调用Home Assistant服务来与设备进行交互。 - 这种方式更适合那些已经熟悉Home Assistant界面和配置的用户,可以更方便地在Home Assistant中管理和监控Node-RED的工作流程。 总的来说,选择使用哪种方法取决于你的需求和个人偏好。如果你更喜欢在Node-RED中构建和管理自动化逻辑,那么使用Home Assistant组件可能更适合你。如果你已经习惯了Home Assistant的界面并且想要在一个统一的界面中管理所有的自动化和服务,那么使用Node-RED插件可能更适合你。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值