mosquitto配置用户名密码及tls加密双向认证访问

本文详细介绍在Linux环境下安装配置MQTTBroker的过程,包括mosquitto版本的选择、源码编译、依赖安装、服务启动、订阅发布功能验证,以及如何配置用户名密码访问和TLS加密双向认证。

需求背景

需要在linux环境中安装配置mqtt broker,并配置用户名、密码访问及tls加密传输认证;

准备资料

1、centos 6.5 64bit
2、mosquitto1.4.4版本

安装mqtt broker服务

1、解压源码包tar xvf mosquitto-1.4.14.tar.gz
2、进入源码目录,编辑config.mk文件:
分别修改
WITH_SRV:=no —->WITH_SRV:=yes
WITH_UUID:=no —->WITH_UUID:=yes
3、安装必要依赖包
yum install gcc gcc-c++ openssl-devel
4、make && make install 安装即可;
5、启动服务
5.1、默认路径
mqtt broker服务默认安装在/usr/local/bin
配置文件默认在/etc/mosquitto
5.2、添加基本配置
cd /etc/mosquitto/进入配置文件目录;
cp mosquitto.conf.example mosquitto.conf,拷贝基本配置文件;
执行mosquitto -c /etc/mosquitto/mosquitto.conf -v启动服务;
会报错,如下:
1600225060: mosquitto version 1.4.14 (build date 2020-09-16 10:51:44+0800) starting
1600225060: Config loaded from /etc/mosquitto/mosquitto.conf.
1600225060: Opening ipv4 listen socket on port 1883.
1600225060: Opening ipv6 listen socket on port 1883.
1600225060: Error: Invalid user ‘mosquitto’.
默认是用mosquitto帐号启动,添加帐号即可;
useradd mosquitto,然后再启动
看到如下信息,说明broker已经启动成功;
1600225144: mosquitto version 1.4.14 (build date 2020-09-16 10:51:44+0800) starting
1600225144: Config loaded from /etc/mosquitto/mosquitto.conf.
1600225144: Opening ipv4 listen socket on port 1883.
1600225144: Opening ipv6 listen socket on port 1883.
6、验证订阅、发布功能是否正常
6.1、订阅
执行命令:mosquitto_sub -h 127.0.0.1 -p 1883 -t ‘/mqttbroker/test’
mosquitto_sub: error while loading shared libraries: libmosquitto.so.1: cannot open shared object file: No such file or directory
报错了,是libmosquitto.so.1库找不到问题,只需要添加到加载搜索的环境变量即可;
默认安装时,libmosquitto.so安装到了/usr/local/lib路径,所以只需要将这个路径添加到ldconfig搜索的路径就行;
echo ‘/usr/local/lib’ > /etc/ld.so.conf.d/local-lib.conf,然后再ldconfig -v | grep mosquitto,看到如下信息,则说明加载成功,再次执行订阅命令;
libmosquitt

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值