MQTT Explorer und TLS

Ich habe meinen MQTT-Server von außen zugänglich gemacht. Wenn ich aber im MQTT Explorer "Validate certificate" auswähle, bekomme ich "certificate has expired".

In Pocket speichern vorlesen Druckansicht 2 Kommentare lesen
Lesezeit: 2 Min.
Von
  • Peter Siering

Mich treibt MQTT Explorer in den Wahnsinn: Ich habe meinen MQTT-Server per Port-Weiterleitung im Router von außen zugänglich gemacht. Per TCP-Proxy versieht ihn Traefik mit Zertifikaten von Let’s Encrypt. Wenn ich im MQTT Explorer aber die Option "Validate certificate" setze, sagt das Programm "certificate has expired". Wo liegt das Problem?

Vermutlich haben Sie alles richtig gemacht: MQTT Explorer verwendet als Basis die Entwicklungsumgebung Electron, die das Schreiben lokal ausgeführter JavaScript-Programme erlaubt. Doch die verwendete Electron-Version vertraut schlicht der Zertifikatskette nicht, auf der das Zertifikat von Let’s Encrypt aufbaut.

Sie können dem Programm etwas Nachhilfe geben, indem Sie mit dem Knopf "ADVANCED" in die Einstellungen für Ihre MQTT-Verbindung wechseln. Dort betätigen Sie "CERTIFICATES" und dann "SERVER CERTIFICATE (CA)". Jetzt können Sie das fehlende Zertifikat ergänzen, damit diese Verbindung Let’s Encrypt vertraut – das "ISRG Root X1"-Zertifikat müssen Sie vorher herunterladen.

Dass das Problem beim MQTT Explorer liegt, können Sie bestätigen, indem Sie gesicherte Zugriffe auf Ihren MQTT-Server mit dem openssl-Befehl unixoider Betriebssysteme testen. Die Eingabe von

openssl s_client -connect <Ihr Server>:8883 -showcerts

sollte Hinweise auf von Let’s Encrypt ausgestellte Zertifikate bringen.

Wenn Sie nur Hinweise auf ein "TRAEFIK DEFAULT CERT" erhalten, testen Sie womöglich unter einer etwas älteren macOS-Version. Deren aus LibreSSL stammendes openssl schickt den Servernamen beim Zugriffsversuch nicht mit (kein SNI). Dann sollten Sie den Befehl zu

 openssl s_client -connect <Ihr Server>:8883 -servername <Ihr Server> -showcerts

abwandeln.

Wenn MQTT Explorer meckert, dass das Zertifikat des Servers abgelaufen sei, kann das eine falsche Fährte sein.
Neugierig geworden?

(ps)