mosquitto_sub 启用 TLS

mosquitto_sub with TLS enabled

我是 MQTT 的新手,遇到了一个令人沮丧的问题。

我一直在使用MQTT.fx订阅一个主题;我设置了:

这很有效,但我想使用 mosquitto_sub。 我正在尝试通过以下方式订阅同一主题:

mosquitto_sub -h  host -p 8883 -t topic -i client id

这对我不起作用。我在 Ubuntu 虚拟机上使用它。
我的观察力告诉我应该启用 TLS,但我不太确定如何做到这一点,我已经用多种方式塞满了证书和启用 TLS,但没有得到正确的组合。我知道这是必需的,就好像我取消选中 MQTT.fx 中的 SSL/TLS 框一样 我无法连接。

我真的很想用 mosquitto 复制我在 MQTT.fx 中的内容。

在mosquitto_sub命令中,使用--capath参数指向/etc/ssl/certs。它需要一个指向可信证书的指针。

要使用 mosquitto_sub 启用 SSL,您需要指定一个 CA 证书。

这可以通过 2 种方法中的一种来完成。

  1. --cafile /path/to/a/file 其中文件包含所需的可信 CA 证书(无论是单独的还是串联集的一部分)
  2. --capath /path/to/directory 其中目录包含以 .crt 结尾的文件集合,其中包含要信任的 CA 证书。 CA 证书也应该使用 c_rehash 函数进行索引。

mosquito_sub man page 中提到了这两个选项作为启用 SSL 的方法

例如

mosquitto_sub -h host -p 8883 --cafile ca.crt -t topic -i client id