Keine Verbindung zu Mosquitto-Broker, wenn require_certificate falsch ist
Mein Verständnis ist, wenn ich require_certificate false
in meiner Konfiguration dann Mosquitto-Broker erlaubt einem client zu verbinden, auch wenn es nicht das Zertifikat und-Schlüssel; um genauer zu sein für die Python-client, auch wenn ich mich nicht anruft
mq.tls_set(mqttCafile, mqttCertfile, mqttKeyfile)
bevor Sie
mq.connect(mqttBrokerURL, mqttBrokerPort, keepAliveTime)
Aber wir sind nicht in der Lage, die Verbindung mit der broker ohne Aufruf tls_set()
Funktion.
mosquitto.conf Inhalt:
port 8883
cafile ssl/all-ca.crt
certfile ssl/server.crt
keyfile ssl/server.key
require_certificate false
tls_version tlsv1
password_file /etc/mosquitto/passwd
allow_anonymous false
Sever Seite Fehler:
1382529992: Config loaded from mosquitto.conf.
1382529992: Opening ipv4 listen socket on port 8883.
1382529992: Opening ipv6 listen socket on port 8883.
1382530058: New connection from 127.0.0.1 on port 8883.
1382530058: OpenSSL Error: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number
1382530058: Socket read error on client (null), disconnecting.
Client-Seite Fehler:
[Errno 104] Connection reset by peer
Done: 7
Er verbindet erfolgreich, wenn wir an Zertifikaten. Meine Forderung ist Broker ermöglichen sollte, eine Verbindung, die für beide Fälle. Kann das sein, erreichbar mit require_certificate
? Wenn ja, könnten Sie mir bitte helfen, herauszufinden, ob ich bin etwas falsch hier ?
Ich habe versucht mit Mosquitto version 1.2, 1.2.1 & 1.2.2.
InformationsquelleAutor Dilip | 2013-10-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie rufen Sie
tls_set()
zu aktivieren TLS-Modus. Wenn Sie dies nicht tun, wird der client versucht, eine Verbindung ohne TLS. Sie können rufen Sietls_set()
ohne Einstellung ein client-Zertifikat oder Schlüssel, indem Sie diese Parameter, umNULL
in C oderNone
in Python, aber das CA-Zertifikat ist immer erforderlich, es sei denn, Sie werden mithilfe von TLS-PSK. In Python, der Standardwert, wenn nicht angegeben wird für das Zertifikat und der Schlüssel-Datei übergeben werden, wieNone
verwenden, so können Sie zum Beispiel:Wenn
require_certificate
ist wahr, Sie müssen pass, ein gültiges client-Zertifikat und Schlüssel neben Ihr CA-Zertifikat andernfalls wird der broker Ablehnung Ihrer Verbindung.Ist es nicht möglich, einen einzelnen listener mit Kunden umzugehen, die wollen, verbinden Sie beide mit und ohne TLS, aber Sie können mehrere Hörer so kann man lauscht auf port 1883 ohne TLS und eine auf 8883 mit TLS, zum Beispiel.
InformationsquelleAutor ralight