mosquitto TLS用于远程mosquitto_pub

时间:2018-03-29 10:32:41

标签: tls1.2 mosquitto

我正在尝试使用TLS1.2使用let加密证书来设置mosquitto MQTT服务器。

我已经安装了mosquitto和setup let encrpypt。我的/etc/mosquitto/conf.d/default.conf是

listener 1883 localhost

listener 8883
certfile /etc/letsencrypt/live/mqtt.atom.net/cert.pem
cafile /etc/letsencrypt/live/mqtt.atom.net/chain.pem
keyfile /etc/letsencrypt/live/mqtt.atom.net/privkey.pem

在服务器上运行mosquitto我可以成功发布和订阅消息

Sub 
mosquitto_sub -h localhost -t test
hello

Pub
mosquitto_pub -h mqtt.atom.net -t test -m "hello" -p 8883 --capath /etc/ssl/certs/

从Internet(或ESP32)上的另一个系统 - 尝试建立TLS连接时出现错误

mosquitto_pub -h mqtt.atom.net -t test -m "hello again" -p 8883
Error: The connection was lost.

我需要将哪些咖啡馆/证书传递给mosquitto_pub?

1 个答案:

答案 0 :(得分:2)

要在mosquitto_pub中启用TLS,您需要在命令行上传递--capath--cafile

在Linux系统上,您应该能够传递相同的--capath /etc/ssl/certs/(假设您使用的发行版使用的是将CA证书保存在同一位置)。

或者您可以将chain.pem文件从代理复制到另一台计算机并使用--cafile chain.pem

对于像ESP32这样的东西,你需要弄清楚如何在你推送到设备的构建中包含chain.pem。