Python 带有SSL的MQTT“;“对等端重置连接”;错误

Python 带有SSL的MQTT“;“对等端重置连接”;错误,python,ssl,raspberry-pi,mqtt,paho,Python,Ssl,Raspberry Pi,Mqtt,Paho,我正在使用Raspberry Pi将消息发布到VPS中的MQTT代理。我使用了python paho mqtt脚本,并出现以下错误: Traceback (most recent call last): File "mqttpub5.py", line 14, in <module> client.connect("mydomain.com",8883,60) File "/usr/local/lib/python3.4/dist-packages/paho/mqtt

我正在使用Raspberry Pi将消息发布到VPS中的MQTT代理。我使用了python paho mqtt脚本,并出现以下错误:

Traceback (most recent call last):
  File "mqttpub5.py", line 14, in <module>
    client.connect("mydomain.com",8883,60)
  File "/usr/local/lib/python3.4/dist-packages/paho/mqtt/client.py", line 839, in connect
    return self.reconnect()
  File "/usr/local/lib/python3.4/dist-packages/paho/mqtt/client.py", line 994, in reconnect
    sock.do_handshake()
  File "/usr/lib/python3.4/ssl.py", line 804, in do_handshake
    self._sslobj.do_handshake()
ConnectionResetError: [Errno 104] Connection reset by peer
消息毫无问题地发布了。 我正在我的VPS中使用Let's Encrypt

这是我从Pi运行脚本时代理的日志:

1573442272: mosquitto version 1.6.7 starting
1573442272: Config loaded from /etc/mosquitto/mosquitto.conf.
1573442272: Opening ipv6 listen socket on port 1883.
1573442272: Opening ipv4 listen socket on port 1883.
1573442272: Opening ipv4 listen socket on port 8883.
1573442272: Opening ipv6 listen socket on port 8883.
1573442272: Opening websockets listen socket on port 8083.
1573442281: New connection from xx.xx.xx.xxx on port 8883.
1573442281: OpenSSL Error: error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol
1573442281: Socket error on client <unknown>, disconnecting.
157344272:mosquitto版本1.6.7正在启动
157344272:Config从/etc/mosquitto/mosquitto.conf加载。
157344272:正在打开端口1883上的ipv6侦听套接字。
157344272:正在打开端口1883上的ipv4侦听套接字。
157344272:正在打开端口8883上的ipv4侦听套接字。
157344272:正在打开端口8883上的ipv6侦听套接字。
157344272:打开端口8083上的WebSocket侦听套接字。
1573442281:端口8883上xx.xx.xx.xxx的新连接。
1573442281:OpenSSL错误:错误:140760FC:SSL例程:SSL23\u GET\u CLIENT\u HELLO:未知协议
1573442281:客户端上的套接字错误,正在断开连接。
我在另一台计算机上使用了相同的脚本,它可以正常工作


任何帮助都将不胜感激。谢谢

看来解决方案只是升级而已。当错误出现时,我让Raspbian Jessie与Mosquitto 1.3.4版一起使用。我将Raspbian升级为使用MOSQUITO版本1.4.10进行拉伸,问题消失了

对我有效的解决方案是在TLS_set()中设置TLS版本: `


代理日志对关闭连接的原因有何说明?还有,您正在使用哪个代理(和版本)。这是来自代理的日志:
157344281:OpenSSL错误:错误:140760FC:SSL例程:SSL23\u GET\u CLIENT\u HELLO:unknown protocol
我正在使用mosquitto代理版本1.6.7。在我的《覆盆子》中,它是1.3.4版
mosquitto_pub -h mydomain.com -t test -u myusername -P mypassword --cafile /etc/ssl/certs/ca-bundle.crt -p 8883 -m message
1573442272: mosquitto version 1.6.7 starting
1573442272: Config loaded from /etc/mosquitto/mosquitto.conf.
1573442272: Opening ipv6 listen socket on port 1883.
1573442272: Opening ipv4 listen socket on port 1883.
1573442272: Opening ipv4 listen socket on port 8883.
1573442272: Opening ipv6 listen socket on port 8883.
1573442272: Opening websockets listen socket on port 8083.
1573442281: New connection from xx.xx.xx.xxx on port 8883.
1573442281: OpenSSL Error: error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol
1573442281: Socket error on client <unknown>, disconnecting.
import time
import paho.mqtt.client as paho
import ssl

#define callbacks
def on_message(client, userdata, message):
  print("received message =",str(message.payload.decode("utf-8")))

def on_log(client, userdata, level, buf):
  print("log: ",buf)

def on_connect(client, userdata, flags, rc):
  print("publishing ")
  client.publish("topic1","message")


client=paho.Client() 
client.on_message=on_message
client.on_log=on_log
client.on_connect=on_connect
print("connecting to broker")
client.tls_set("/home/admin/certs/server_iot.crt", tls_version=ssl.PROTOCOL_TLSv1_2)

client.tls_insecure_set(True)
client.connect("iot.eclipse.org", 8883, 60)

##start loop to process received messages
client.loop_start()
#wait to allow publish and logging and exit
time.sleep(1)