代码之家  ›  专栏  ›  技术社区  ›  Escher

mosquitto\u pub给出以下错误:1408F10B:SSL例程:ssl3\u get\u记录:错误的版本号

  •  0
  • Escher  · 技术社区  · 6 年前

    我已经将mosquitto配置为在8883端口上侦听,并为服务器生成了letsencrypt SSL证书。到现在为止,一直都还不错。

    我可以成功测试TLS连接: openssl s_client -connect mqtt.example.com:8883 给我证书和会话信息,mosquitto的日志报告连接成功。

    我还可以使用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.
    

    这似乎是一个常见的问题,但我在搜索web时发现的解决方案似乎都不适用于我,因为它们通常涉及使用 self-signed certificate .

    所以我被难住了。有人知道是什么导致了这个错误吗?

    1 回复  |  直到 6 年前
        1
  •  3
  •   hardillb    6 年前

    得到 mosquitto_pub 要尝试启动SSL连接,您需要提供 --cafile --capath 指向CA证书的位置以验证代理。

    如果没有这些选择 莫斯奎托酒吧 mosquitto_sub 不会尝试启动SSL会话,而是尝试使用正常的未加密MQTT连接进行连接。

    在大多数Linux发行版上,您可以使用 --卡帕特 并指向 /etc/ssl/certs 目录