2016-03-07 139 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支持...