MQTT (Mosquitto) over TLS - 某些程序中的证书错误
MQTT (Mosquitto) over TLS - certificate error in some programs
我几天前使用 https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-the-mosquitto-mqtt-messaging-broker-on-debian-8 设置了一个 Mosquitto 服务器。
试了一下,一切似乎都如我所愿。我能够将 android 客户端和 MQTTSpy 连接到我自己的服务器。
昨天我想找一个可以将状态和信息推送到 MQTT 的 Kodi 插件:https://github.com/owagner/kodi2mqtt
当我在 Mosquitto 日志文件中看到更改时,它能够找到服务器,但是我不断收到相同的错误:
1492549927: New connection from 81.240.134.64 on port 8883.
1492549927: OpenSSL Error: error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol
1492549927: Socket error on client <unknown>, disconnecting.
1492549932: New connection from 81.240.134.64 on port 8883.
1492549933: OpenSSL Error: error:140780E5:SSL routines:SSL23_READ:ssl handshake failure
1492549933: Socket error on client <unknown>, disconnecting.
1492549934: New connection from 81.240.134.64 on port 8883.
1492549934: OpenSSL Error: error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol
1492549934: Socket error on client <unknown>, disconnecting.
1492549939: New connection from 81.240.134.64 on port 8883.
1492549939: OpenSSL Error: error:140780E5:SSL routines:SSL23_READ:ssl handshake failure
1492549939: Socket error on client <unknown>, disconnecting.
据我所知,证书存在一些问题,但我不能 100% 确定缺少什么。在其他应用程序中,我不需要提供自己的证书,所以我看不出缺少什么。我尝试在 Kodi 插件中使用生成的证书,但它们似乎不起作用,我得到了一个不同的错误:
1492541859: New connection from 81.240.134.64 on port 8883.
1492541860: OpenSSL Error: error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca
1492541860: OpenSSL Error: error:140940E5:SSL routines:SSL3_READ_BYTES:ssl handshake failure
1492541860: Socket error on client <unknown>, disconnecting.
1492541862: New connection from 81.240.134.64 on port 8883.
1492541862: OpenSSL Error: error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca
1492541862: OpenSSL Error: error:140940E5:SSL routines:SSL3_READ_BYTES:ssl handshake failure
1492541862: Socket error on client <unknown>, disconnecting.
我不确定应该检查哪个方向。我的 server/certificates 有问题(似乎不太可能,因为其他客户正在工作)或者 Kodi 插件的 python 代码有问题?如果是这样,任何人都可以阐明缺少的内容(我知道我的编码方式,只是不真正围绕证书的事情)。
感谢您的帮助!
Joren C.
尝试 ssl 连接:
openssl s_client -connect 81.240.134.xxx:8883 -CAfile /etc/certs/file.crt -debug
您的 python 客户端将需要访问受信任的证书颁发机构。复制签名的 public 证书浏览器客户端不需要它,因为它们已经加载了受信任的证书颁发机构。
如果 kodi 插件使用的是 paho mqtt 客户端库,那么以下内容应该可以修复它..
client.tls_set('$your server's public cert$.crt')
我几天前使用 https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-the-mosquitto-mqtt-messaging-broker-on-debian-8 设置了一个 Mosquitto 服务器。
试了一下,一切似乎都如我所愿。我能够将 android 客户端和 MQTTSpy 连接到我自己的服务器。
昨天我想找一个可以将状态和信息推送到 MQTT 的 Kodi 插件:https://github.com/owagner/kodi2mqtt
当我在 Mosquitto 日志文件中看到更改时,它能够找到服务器,但是我不断收到相同的错误:
1492549927: New connection from 81.240.134.64 on port 8883.
1492549927: OpenSSL Error: error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol
1492549927: Socket error on client <unknown>, disconnecting.
1492549932: New connection from 81.240.134.64 on port 8883.
1492549933: OpenSSL Error: error:140780E5:SSL routines:SSL23_READ:ssl handshake failure
1492549933: Socket error on client <unknown>, disconnecting.
1492549934: New connection from 81.240.134.64 on port 8883.
1492549934: OpenSSL Error: error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol
1492549934: Socket error on client <unknown>, disconnecting.
1492549939: New connection from 81.240.134.64 on port 8883.
1492549939: OpenSSL Error: error:140780E5:SSL routines:SSL23_READ:ssl handshake failure
1492549939: Socket error on client <unknown>, disconnecting.
据我所知,证书存在一些问题,但我不能 100% 确定缺少什么。在其他应用程序中,我不需要提供自己的证书,所以我看不出缺少什么。我尝试在 Kodi 插件中使用生成的证书,但它们似乎不起作用,我得到了一个不同的错误:
1492541859: New connection from 81.240.134.64 on port 8883.
1492541860: OpenSSL Error: error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca
1492541860: OpenSSL Error: error:140940E5:SSL routines:SSL3_READ_BYTES:ssl handshake failure
1492541860: Socket error on client <unknown>, disconnecting.
1492541862: New connection from 81.240.134.64 on port 8883.
1492541862: OpenSSL Error: error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca
1492541862: OpenSSL Error: error:140940E5:SSL routines:SSL3_READ_BYTES:ssl handshake failure
1492541862: Socket error on client <unknown>, disconnecting.
我不确定应该检查哪个方向。我的 server/certificates 有问题(似乎不太可能,因为其他客户正在工作)或者 Kodi 插件的 python 代码有问题?如果是这样,任何人都可以阐明缺少的内容(我知道我的编码方式,只是不真正围绕证书的事情)。
感谢您的帮助!
Joren C.
尝试 ssl 连接:
openssl s_client -connect 81.240.134.xxx:8883 -CAfile /etc/certs/file.crt -debug
您的 python 客户端将需要访问受信任的证书颁发机构。复制签名的 public 证书浏览器客户端不需要它,因为它们已经加载了受信任的证书颁发机构。
如果 kodi 插件使用的是 paho mqtt 客户端库,那么以下内容应该可以修复它..
client.tls_set('$your server's public cert$.crt')