开发者学堂课程【嵌入式之 RFID 开发与应用2020版:MQTT 非匿名登陆配置 】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/665/detail/11176
MQTT 非匿名登陆配置
内容介绍:
一、账户的认证操作
二、创建用户的方式
一、账户的认证操作
在上节课对 mosquitto 软件进行了安装并进行了简单的测试。但是之前所进行的测试没有办法去真实的部署,因为每个人都不希望自己的数据轻易的被别人访问。第一个是能够对数据的发布和访问者进行权限的认证,意思就是你是我的客户才可以进行访问,另外一个就是你是我的客户那也希望数据在传递的过程中不要以明文的方式传递应该是加密的。
所以第一个,一个账号的认证,首先要让 mosquitto 非匿名登陆,之前是任何人都可以去连接去登录去发布去订阅这种方式就是匿名的,想要非匿名首先要在服务器里面先让配置支持,如何支持先打开配置文件,要用 sudo 打开不然没有修改的权限,然后输入 vim /etc/mosquitto/mosquitto.conf 在后面添加 allow_anonymous false( true 表示允许匿名登录,false 表示不允许匿名登录)必须进行验证。结束之后必须指定一个登录用户的账号信息,账户信息创建完成之后会存放到 passwd.conf 配置文件中,首先要改成 password_file/etc/mosquitto/passwd.conf 路径,修改完成保存。
二、创建用户的方式
1、隐藏密码创建
然后要创建用户,有两种方法一种是隐藏密码创建,另一种是用明密码的方式创建。第一种是通过 mosquitto_passwd 里面有几种命令, mosquitto 是服务器的命令,mosquitto_pub 是发布,mosquitto_sub 是订阅,mosquitto_passwd 是创建账户。
输入 mosquitto_passwd -c/etc/mosquitto ,-c 指定账户信息的存放路径,名字可以自己修改与前面保持一致就可以。接下俩就是用户名,用户名设为 hg,输入 hg 的密码 111111,再输入一次。这时可以看到没有权限去写,没有权限的原因是没有加 sudo,输入 sudo 后重新连接再次输入密码。之后可以输入 etc/mosquitto/passwd.conf 去看,这时就相当于建立了 hg 账户。
2、用明密码的方式
然后可以再建立一个账户用另一种方式即明文的方式,首先参数要变,由 -c 变为 -b,hg 改为 zs 111111,这就是用户名和密码一起输入,再去查看这时多了 zs 的账户。
两个账户都有了之后,重新去运行服务器 mosquitto -c 去指定配置文件,配置文件已经加好,服务器可以进行正常的运行。再通过之前匿名登陆的方式则显示没有权限无法登陆,完成了几次握手,发送连接,应答,最后没有权限。
即出现了错误(Socket error on client<unknown>) 断开了,因此必须加上账户信息。账户信息的添加要输入 -u hg (用户名)-P(密码)111111。P 一定要大写不能写成小写。这时就连接上了,连接上之后再看发送消息,匿名发送消息并没有收到,这时将消息级别降低,不需要太复杂,但是没有权限,依然要用同样的方法即输入 -u hg -p111111.这样消息就可以发送出去。也就是说用 hg 的账户去订阅的,可以用 zs 的账户去发布,也就是说符合服务器的账户要求就是之前所讲的做一个服务器连接了很多终端,终端有发布者和订阅者,订阅都可以互相订阅互相发布,因为只认主题。
这就是非匿名登陆,下节课会去讲更加安全的加密通信。