我已经配置了蚊子监听8883端口,并为服务器生成了letsencrypt证书。到目前一切尚好。
我可以成功地测试TLS连接:openssl s_client -connect mqtt.example.com:8883为我提供了证书和会话信息,而蚊子的日志报告了一个成功的连接。
我还可以使用paho python库成功发布消息。
但是,当我尝试使用mosquitto_pub时,它会这样做:
$ mosquitto_pub -h mqtt.example.com -p 8883 -u foobar -P "" -t foobar -m test
Client connection from XX.XX.XX.XX failed: error:1408F10B:SSL routines:ssl3_get_record:wrong version number.这似乎是一个常见的问题,但我发现的搜索网络的解决方案似乎都不适用于我,因为它们通常涉及到客户使用self-signed certificate识别自己。
所以我被难住了。有人知道是什么导致了这个错误吗?
发布于 2018-09-10 16:23:21
要让mosquitto_pub尝试启动SSL连接,您需要提供指向CA证书位置的--cafile或--capath,以验证代理。
如果没有这些选项,mosquitto_pub或mosquitto_sub都不会尝试启动SSL会话,而是尝试使用普通的未加密MQTT连接进行连接。
在大多数Linux发行版上,您可以使用--capath并指向/etc/ssl/certs目录。
https://stackoverflow.com/questions/52243027
复制相似问题