前言
mqtt是一个简单轻量的通讯消息协议,其安全保障不多,比较简单的就是增加账户密码验证,我使用emqx作为通讯的Broker进行中转,emqx本身匿名验证是开启的,我们需要手动关闭并增加用户名密码验证,这里的方法老版和新版略有不同,所以记录一下。
一、运行环境
windows 11 ,使用老版本的emqx服务在win11系统上已经无法运行,需要下载最新版的,我这里使用的是emqx-4.4.4-otp24.2.1-windows-amd64。
二、配置步骤
1.关闭服务
emqx stop
2.关闭匿名访问
打开emqx\etc路径下emqx.conf配置文件,将“allow_anonymous = true”修改为false
3.配置用户名密码
打开emqx\etc\plugins路径下emqx_auth_mnesia.conf配置文件,增加用户账户名密码(也可以访问平台,在通用/用户 处进行可视化添加)。
4.开启服务
emqx目录下使用控制台执行下面指令:
emqx start
5.启动mnesia服务
“Mnesia 认证使用 EMQX 内置 Mnesia 数据库存储客户端 Client ID/Username 与密码,支持通过 HTTP API 管理认证数据。”----emqx官网文档
打开emqx本地配置网址,默认网址为“127.0.0.1:18083",用户名密码为"admin",“public”,进入如下页面,将红框中的服务开启。
6.验证
这样emqx的匿名验证就关闭了,我们连接mqtt服务必须提供用户名密码,可以使用MqttBox进行测试。
必须配置用户名密码才可以连接成功。