MOSQUITO OpenSSL握手失败。

MOSQUITO OpenSSL握手失败。,openssl,centos,mqtt,mosquitto,Openssl,Centos,Mqtt,Mosquitto,我有一个Mosquitto 1.4.4代理托管在CentOs 6.7中 通过遵循mosquitto文档 ()及 我尝试在客户机和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.

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

通过遵循mosquitto文档 ()及

我尝试在客户机和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 -h x.x.x.x -p 8883 -t topic -m message --cafile ca.crt
我在莫斯基托经纪人那里得到的是

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.
端口8883上y.y.y.y的新连接。
OpenSSL错误:错误:140780E5:SSL例程:SSL23\u读取:SSL握手失败
客户端上的套接字错误,正在断开连接。

解决办法是什么?我哪里出错了

我在这里看到的最常见的失败原因是证书配置不当。我建议使用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

Stack Overflow是一个关于编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参见帮助中心中的。也许或者会是一个更好的提问的地方。另请参阅。我不太确定问题是否出在libmosquittoopenssl客户端上。实际上,我在这里发布了它,因为serverfault上没有MOSQUITO或mqtt的标记。我的错。我仍然意识到这是一个错误的论坛。谢谢。
openssl s_客户端
应与
-tls1-servername
一起调用,以确保使用TLS和SNI。TLS和SNI的缺乏导致了实践中的问题。例如,请参见OpenSSL用户邮件列表。此外,您不应该在OP保留重要信息(如服务器名称)的问题上浪费时间。我们无法检查配置或验证建议的修复。@ralight openssl客户端工作正常。问题应该出在libmosquito客户端上。将尝试其他一些客户端。@jww我同意这不是一个编程问题(我只是自动回答,没有考虑问题在哪里),但在这种情况下,您的其余评论是不必要的-所讨论的服务器只支持TLS,不支持SSL,不支持SNI。