我有一个托管在 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/