Ich versuche, meinen python paho mqtt client zu meinem broker durch tls mit meiner eigenen certificate authority zu verbinden. Ich habe notwendige Dateien erstellt und meinen RabbitMQ-Broker so konfiguriert, dass er sie verwendet. Meine Idee ist, dass der Client den Server authentifiziert, aber der Client selbst muss nicht authentifiziert werden.python paho mqtt client-verbindung durch ssl/tls geben einen fehler
- ca.cert.pem
- cert.pem
- key.pem
Ich weiß, diese korrekt funktionieren sollte, weil ich das richtig funktioniert auch ein scala paho MQTT Client haben.
Derzeit laufe ich die Datei direkt vom Terminal auf meinem Mac. Ich verwende eine virtuanenv von Python erstellt 3.5.2 und ich habe eine Datei subscribe.py
import paho.mqtt.client as paho
import ssl
def on_message(clnt, userdata, msg):
print(msg.topic+" "+str(msg.payload))
def on_connect(client, userdata, rc):
print("Connected with result code "+str(rc))
mqttc.subscribe("foo")
mqttc = paho.Client()
mqttc.on_message = on_message
mqttc.on_message = on_message
mqttc.tls_set("ca.cert.pem", tls_version=ssl.PROTOCOL_TLSv1_2)
mqttc.connect("address", 8883, 60)
mqttc.loop_forever()
Wenn ich die Datei, die ich die folgende Fehlermeldung führen
ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:645)
ich auch die tls_version
zu TLSv1_1
versucht haben, zu ändern , TLSv1
und es vollständig auslassen. ca.cert.pem
ist in dem gleichen Ordner wie die subscribe.py
Datei
Das Beispiel auf Paho Website scheint sehr einfach so was fehlt mir hier? Warum erhalte ich den Fehler auf meinem Python-Client?