2016-03-07 148 views
3

我一直拼命地试图让我的MQTT客户端连接到使用来自CA的证书设置的MQTT代理。 (Letsencrypt:https://pypi.python.org/pypi/letsencrypt/0.4.1)我为我的https网站使用了相同的证书,而且这似乎工作正常。不过,我不确定这是否有任何联系。Mosquitto证书SSL23_GET_CLIENT_HELLO:未知协议

我用这个指南,建立证书的经纪人(http://mosquitto.org/2015/12/using-lets-encrypt-certificates-with-mosquitto/

经纪人,V1.4.8似乎很好地工作具有以下配置:

cafile chain.pem 
certfile cert.pem 
keyfile privkey.pem 

[ ok ] mosquitto is running. 

客户端尝试与调试消息率连接到该经纪人:

Client mosqsub/42074-titan sending CONNECT 

在我经纪人的端日志我收到此错误信息:

1457358950: New connection from NOT.TELLING.YOU.OBVIOUSLY on port 8883. 
1457358950: OpenSSL Error: error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol 
1457358950: Socket error on client <unknown>, disconnecting. 

我已经搜索了高和广泛的解决方案,遗憾的是有没有什么东西在那里。

任何帮助将不胜感激!谢谢!

+0

请更新问题,并详细说明您使用的客户端以及它是如何使用的已配置 – hardillb

+0

这是否足够的信息? – user5740843

+0

请添加完整的mosquitto_sub命令行 – hardillb

回答

1

我的猜测是你还没有启用TLS模式 - 你是否通过--cafile到mosquitto_sub?

0

我碰到此问题与paho.mqtt.c MQTT客户端库当我使用TCP作为协议代替SSL的。

所以我只好用

ssl://1.2.3.4:56789 

,而不是

tcp://1.2.3.4:56789 

而且使用paho.mqtt.c时,请确保你链接与SSL支持的库和使用SSL库支持实际上是用SSL支持构建的!曾经存在缺少定义(OPENSSL)的CMake文件中的错误,因此SSL库不提供SSL支持...