Zum Hauptinhalt springen

MQTTS mit EPD mit nicht öffentlichem Zertifikat

1. Einleitung​

Diese Dokumentation beschreibt die Konfiguration von MQTT über TLS (MQTTS) für EPD-Geräte mit einem Zertifikat einer nicht öffentlichen Certificate Authority (CA), z.B. Unternehmenszertifikat oder selbst-signiertes Zertifikat.

Ziel ist eine verschlüsselte und sichere Kommunikation zwischen EPD und MQTT Broker.

hinweis

Öffentliche Stammzertifikate bekannter Zertifizierungsstellen (z. B. öffentliche CAs) sind auf dem EPD bereits vorinstalliert.
Dieser Artikel richtet sich nur an Nutzer von nicht-öffentliche Stammzertifikaten (z. B. unternehmenseigene oder selbstsignierte CAs). Diese müssen explizit auf dem EPD installiert und in der Konfiguration referenziert werden.

2. Systemübersicht und Voraussetzungen​

2.1 Beteiligte Komponenten​

  • EPD (Firmware ≥ 1.2.8)
  • MQTT Broker (Port 8883, TLS aktiviert)
  • WLAN-Infrastruktur

2.2 Anforderungen an den MQTT Broker​

  • TLS aktiviert (Port 8883)
  • Server-Zertifikat korrekt installiert
  • Zertifikat passt exakt zur Broker-Adresse (DNS-Name oder IP)
  • MQTT-Zugangsdaten vorhanden (Username / Passwort)

2.3 Zertifikate​

  • Root-CA-Zertifikat
  • DER-kodiert (.der)
  • PEM-Formate werden nicht akzeptiert

Beispiel zur Konvertierung (PEM → DER)​

openssl x509 -in test-ca.pem -out test-ca.der -outform DER

3. Konfiguration, Installation und Verifikation​

Die Konfiguration von vertrauenswürdigen Zertifikation kann nicht über die Weboberfläche erfolgen. Verwenden Sie dazu die Konfiguration mittels FWUpdate.

3.1 JSON-Konfiguration (epd-config.json)​

Die folgende Konfiguration ist erforderlich, um MQTT über TLS auf dem EPD zu aktivieren:

{
"wifi": {
"ssid": "....",
"password": "....."
},
"mqtt": {
"url": "mqtts://.....:8883",
"username": "....",
"password": "...."
},
"certificate": {
"use_for_mqtt": true,
"file": "test-ca.der"
},
"app": {
"sleep_sec": 60
}
}

Wichtige Regeln​

  • Das Zertifikat muss im DER-Format (.der) vorliegen
  • Die Zertifikatsdatei muss im gleichen Verzeichnis wie fwupdate.exe liegen
  • Der Feldname certificate ist zwingend (nicht cert)
  • Es dürfen keine unnötigen null-Felder verwendet werden

3.2 Installation auf dem EPD​

Dateien vorbereiten​

Im selben Ordner müssen liegen:

  • epd-config.json
  • Root-CA-Zertifikat (.der)
  • fwupdate.exe

Flash-Vorgang​

.\fwupdate.exe program --config epd-config.json

3.3 Verifikation​

Konfiguration prüfen​

.\fwupdate.exe info --config

Erwartung:
Das Feld certificate darf nicht null sein.

Laufzeittest​

  • EPD verbindet sich mit WLAN
  • MQTT-TLS-Verbindung wird aufgebaut
  • Gerät erscheint im MQTT Explorer