openssl - Mosquitto OpenSSL 握手失败。

标签 openssl centos mqtt mosquitto

我有一个托管在 CentOs 6.7 中的 Mosquitto 1.4.4 代理。

通过关注 mosquitto 文档 ( http://mosquitto.org/man/mosquitto-tls-7.html ) 和 How do you set up encrypted mosquitto broker like a webpage which has https?

我尝试在客户端和 mosquitto 代理之间启用加密连接,并在启用 TLS 的情况下启动并运行代理。

mosquitto version 1.4.4 (build date 2015-09-24 08:08:55+0000) starting
Config loaded from mosquitto.conf.
Opening ipv4 listen socket on port 8883.
Opening ipv6 listen socket on port 8883

分发证书颁发机构证书 (ca.crt) 后,我尝试使用命令在 lib_mosquitto 中使用 mosquitto_pub 运行测试轮

mosquitto_pub -h x.x.x.x -p 8883 -t topic -m message --cafile ca.crt

我在mosquitto broker中得到的是

New connection from y.y.y.y on port 8883.
OpenSSL Error: error:140780E5:SSL routines:SSL23_READ:ssl handshake failure
Socket error on client <unknown>, disconnecting.

有什么办法可以解决?我哪里出错了?

最佳答案

我在这里看到的最常见的失败原因是证书配置不当。我建议使用 openssl 客户端进行调试。这应该可以让您更好地了解问题出在哪里。

openssl s_client -connect x.x.x.x:8883 -CAfile ca.crt

您也可以尝试检查不同的服务器以确保客户端工作正常。

wget http://test.mosquitto.org/ssl/mosquitto.org.crt
mosquitto_pub -h test.mosquitto.org -p 8883 -t topic -m message --cafile mosquitto.org.crt

关于openssl - Mosquitto OpenSSL 握手失败。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32963201/

相关文章:

c - 使用 AES-128/CBC 时 EVP_DecryptFinal_ex 间歇性解密失败

ssl - 我无法在我的网站中添加Comodo SSl,请您指导我

openssl s_client 没有密码匹配

perl - 当脚本使用 setsid 运行时在 perl 中处理 ctrl + c

architecture - 使用 mqtt 协议(protocol)和 kafka 作为消息代理

node.js - MQTT 客户端是否需要具有与 MQTT 代理用于 TLS 相同的 key 和证书?

连接到主机的 SSL 验证失败

r - 在 Centos6 上安装 Rmpi​​ 'can' t find -lmpi'

linux - CentOS 6.4 logrotate 显示错误权限被拒绝

ssl - 如何在客户端没有证书的情况下为 mqtts 配置 Mosca?