Ich zeige euch hier wie ihr z.B. bei der smarten Steckdose NOUS A1T [Link 1 – 2er* | Link 2 – 4er*] Tasmota (ESP8266 Chip) mit MQTT-TLS Unterstützung flashen könnt. Das funktioniert aber fast mit allen Geräten, die Tasmota vorinstalliert haben. Wie man ein passenden MQTT Broker installiert, habe ich hier beschrieben: https://www.maffert.net/linux-mosquitto-mqtt-broker-tls-ssl-installieren-einrichten/
Tasmota-tls und tasmota-minimal herunterladen:
Die immer aktuellste Version bekommt ihr von hier: https://github.com/tasmota/install/blob/firmware/firmware/unofficial/tasmota-tls.bin.gz
Zusätzlich "tasmota-minimal" herunterladen: http://ota.tasmota.com/tasmota/release/tasmota-minimal.bin.gz
Tasmota mit MQTT-TLS flashen:
- Das Tasmota Webinterface öffnen
- „Firmware Upgrade“ anklicken
- bei „Upgrade by file upload“ nun die eben heruntergeladene „tasmota-minimal.bin.gz“ Firmware auswählen und auf „Start upgrade“ klicken
- wenn dann im Webinterface „MINIMAL firmware please upgrade“ steht erneut auf „Firmware Upgrade“ klicken, nun aber tasmota-tls.bin.gz auswählen und erneut auf „Start upgrade“ klicken
- nach dem nächsten Reboot sollte alles wieder so aussehen wie vorher, nur das jetzt unter „Configuration“ > „Configure MQTT“ zusätzlich ein MQTT TLS Button zu sehen ist. Hiermit ist das Device nun MQTT TLS fähig!
Ggf. Funktion anpassen + nützliche Infos:
Wie auf der offiziellen Seite beschrieben, unterstützt Tasmota mehrere Modis:
Bei der Einstellung „SetOption123 0“ was der Standard ist, wird die Identität des Servers anhand vordefinierter offizieller Zertifizierungsstellen überprüft. Es ist keine weitere Konfiguration erforderlich. Tasmota unterstütz hierbei die folgenden offiziellen CAs:
- Let’s Encrypt ISRG Root X1, RSA 4096 bits SHA 256, valid until 20300604, starting with Tasmota version 13.4.1.2
- Amazon Root CA, RSA 2048 bits SHA 256, valid until 20380117, used by AWS IoT
Aktiviert man die Einstellung „SetOption123 1“ wird die Fingerabdruck Überprüfung aktiviert. Bedeutet: Diese Methode funktioniert für jedes Serverzertifikat, auch für selbstsignierte Zertifikate. Der öffentliche Schlüssel des Servers wird in einen Fingerabdruck umgewandelt und mit einem zuvor aufgezeichneten Wert verglichen.
Wenn man also die Funktion aktiviert, ist standardmäßig die Funktion „Fingerprint auto-learn“ aktiv, das heißt Tasmota lernt den Fingerabdruck bei der ersten Verbindung automatisch und setzt die Fingerabdruck-Einstellungen auf den Zielfingerabdruck. Wichtig ist hierbei das bei selbst signierten Zertifikaten der Hostname passt und der Broker sauber via DNS im Netzwerk erreichbar ist. -> https://www.maffert.net/linux-mosquitto-mqtt-broker-tls-ssl-installieren-einrichten/
Fehler und deren Lösungen:
Erhält man in der Konsole die Meldung „MQT: TLS connection error: 1“ ist der Fingerprint falsch. Zurücksetzen kann man den via „MqttFingerprint 0“. MQTT TLS Fehlermeldungen und deren Bedeutungen, findet ihr hier: https://tasmota.github.io/docs/TLS/#tls-troubleshooting