我正在尝试(在此处用最好的词)使用自签名开放SSL证书与mosquitto MQTT v3.1消息代理ovr TLS进行交换。很简单...通常。我认为吗?
过去,我曾经使用paho-mqtt编写脚本,但是此时我要尝试使用控制台命令行来尽量减少解释。 我遵循了该网站https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-the-mosquitto-mqtt-messaging-broker-on-ubuntu-16-04的一些主要步骤(允许我在Ubuntu 18上运行服务器,但应该不会有太大变化...)。
与此服务器上的一个终端
mosquitto_sub -h IP.ad.dr.ess -t test -u "username" -P 'password'
我在服务器上尝试了以下
mosquitto_pub -h IP.ad.dr.ess -t test -m "hello world" -u 'username' -P 'password'
有效。 然后在我的电脑上也一样。因此服务器已启动并正在运行。欢呼!
现在使用TLS:袖套,准备让婴儿安全地工作,请在我的计算机上尝试以下命令:
mosquitto_pub -h IP.ad.dr.ess -t test -m "hello world with TLS" -p 8883 --cafile /etc/mosquitto/certs/brokerCertificate.crt -u 'username' -P 'password'
在我的计算机上尝试命令行时,我显然希望使用TLS建立一个问候世界,但会收到操作超时错误。 所以错误并没有真正帮助。
在/var/log/mosquitto/mosquitto.log中检查我的好友LogFile ...完全没有。因此,基本上,我认为它甚至都不会交给经纪人。
在服务器上尝试了相同的命令,在将文件的所有者更改为我的用户名而不是root后,它起作用了。有点喜欢作弊,但我能理解为什么。除非作弊行为无法在我的计算机上正常运行,否则该计算机上根本没有用户名...
我一直在反复搜索,徒劳地给出了我在这里总结的想法。
哦,在我忘记之前: -我确实允许ufw端口8883和1883。 -经纪人认证WAS使用openssl方式(使用IP.ad.dr.ess作为通用名称)创建了证书(至少我认为这是遵循https://mcuoneclipse.com/2017/04/14/enable-secure-communication-with-tls-and-the-mosquitto-broker/的openssl方式)
编辑:根据需要:mosquitto.conf和/var/log/mosquitto/mosquitto.log的最后几行
listener 1883
allow_anonymous false
password_file /etc/mosquitto/passwd
#logging
log_type all
log_dest stdout
log_dest file /var/log/mosquitto/mosquitto.log
listener 8883
cafile /etc/mosquitto/certs/ca.crt
certfile /etc/mosquitto/certs/brokerCertificate.crt
keyfile /etc/mosquitto/certs/server.key
tls_version tlsv1.2
sudo service mosquitto start
● mosquitto.service - LSB: mosquitto MQTT v3.1 message broker
Loaded: loaded (/etc/init.d/mosquitto; generated)
Active: active (running) since Thu 2019-05-23 13:10:56 EDT; 2s ago
Docs: man:systemd-sysv-generator(8)
Process: 25157 ExecStop=/etc/init.d/mosquitto stop (code=exited, status=0/SUCCESS)
Process: 25457 ExecStart=/etc/init.d/mosquitto start (code=exited, status=0/SUCCESS)
Tasks: 1 (limit: 4915)
CGroup: /system.slice/mosquitto.service
└─25463 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
紧接着在日志文件中出现此提示:
1558631456: mosquitto version 1.6.2 starting