IN-9008 als MQTT-Client mit TLS nutzen

Hallo Zusammen,

ich nutze eine IN-9008 (Version 328) als MQTT-Client. Die unverschlüsselte Kommunikation funktioniert und wird mit separatem Nutzer/PW abgesichert.
Ich wollte die Verbindung zum Broker nun zusätzlich mit TLS absichern (MQTT Broker ist mosquitto).
Mein Ansatz sieht vor, dass der externe MQTT Broker ein selbsterstelltes Server/CA-Zertifikat bereitstellt und die Instar-Kamera dieses ohne Validierung verwendet. Auf ein zusätzliches Client-Zertifikat kann ich verzichten.
Mit dem MQTT Explorer funktioniert diese Lösung auch wunderbar. Allerdings scheint die Instar-Kamera dieses Szenario nicht zu unterstützen. Ist geplant dieses Szenario zu unterstützen?

Vielen Dank

Das sollte eigentlich funktionieren - wir haben hier ein FAQ zu dem Thema:

Hey,

wenn du ein selbst signiertes Zertifikat verwendest, sollte es eigentlich reichen, wenn du dieses über die MQTT Oberfläche hochlädtst. Was meinst du genau mit, dass das Zertifikat ohne Validierung verwendet werden soll? Die Kamera wird auf jeden Fall versuchen die Domain zu verifizieren.

Steht dem Client das Root-Zertifikat nicht zur Verfügung, schlägt die Prüfung des Server-Zertifikats fehl. Damit man das Root-Zertifikat nicht verteilen muss, bieten diverse Clients an, die Prüfung zu ignorieren. (Aus der Browser-Welt kennen wir dies mit der Sicherheitswarnung des Browsers an den Nutzer.)

Ich finde die Anleitung aus dem Wiki etwas verwirrend. Erst wird erläutert, wie man Zertifikate selbst erstellen kann (soweit so gut), bei der Einbindung wird allerdings ein Rootzertifikat von Let’s Encrypt verwendet.
Versuche ich mein selbstsigniertes Root-Zertifikat hochzuladen, schlägt dies leider ohne Begründung fehl. Kann man die Ursache hierfür ermitteln?

grafik

TLS ohne überprüfung des Zertifakts ist nicht mehr sinnvoll, da dann jeder, der beim Verbindungsaufbau lauscht, die Verbindung entschlüsseln kann. Das Root Zertifikat kannst du ohne Probleme verteilen. Nur aufpassen, dass der Key nicht dabei ist.
Kann es sein, dass dein Key noch in der .pem enthalten ist? Wenn ja, wird der Upload nämlich abgelehnt (Aus Sicherheitsgründen).

Entschlüsseln oder meinst Du via MITM ein anderes Root-Zertifikat unterjubeln? Generell hast Du aber natürlich Recht, dass es keine best practise darstellt. Allerdings hatte ich nicht vor es aus dem Internet erreichbar zu machen.
Ich habe die .pem der CA geprüft. Die Datei beinhaltet ausschließlich den public key. Ich habe zum Spass auch mal die .pem des Serverzertifikates in dem Dialog ausgewählt. Dieses wird von der WebGUI akzeptiert. Eine Verbindung funktioniert trotzdem nicht. Leider fehlt mir ohne Fehlermeldung jegliche Form des Debuggings. :frowning:

Entschlüsseln oder meinst Du via MITM ein anderes Root-Zertifikat unterjubeln?

Genau.

Ich habe die .pem der CA geprüft. Die Datei beinhaltet ausschließlich den public key.

Es gab bei manchen Browsern (Firefox z.B) das Problem, dass ne Datei beim Hochladen manchmal abgeschnitten wird, wenn die Datei zu klein ist (Wenige Kb). Wenn man via HTTPS mit der Kamera verbindet ist, sollte es aber immer gehen.

Eine Verbindung funktioniert trotzdem nicht. Leider fehlt mir ohne Fehlermeldung jegliche Form des Debuggings.

Du hat Recht, das muss auf jeden Fall noch verbessert werden.
Es gibt aber ein verstecktes Log des Mqtt Services, das manchmal helfen kann.
Das kannst du unter /tmpfs/mqtt-log erreichen.

Dort wird aber leider nicht drinstehen was beim Hochladen des Zertifikats schiefgeht, da das ein Problem der Web Oberfläche ist.

Wenn du möchtest kannst du mir das Zertifikat auch zukommen lassen, und ich schaue mir an warum es nicht klappt.