MQTT Absichern durch ein selbst signierten Zertifikats für Mosquitto
Version vom 21. Oktober 2024, 19:57 Uhr von Thomas.will (Diskussion | Beiträge) (→CA-Schlüssel und Zertifikat erstellen)
Erstellung eines selbst signierten Zertifikats für Mosquitto
- mkdir ca
- cd ca
CA-Schlüssel und Zertifikat erstellen
- openssl genrsa -out ca.key 2048
- openssl req -x509 -new -nodes -key ca.key -sha256 -days 3650 -out ca.crt
Mosquitto-Schlüssel und Zertifikat erstellen
- openssl genrsa -out mqtt.lab.int.key 2048
- openssl req -new -key mqtt.lab.int.key -out mqtt.lab.int.csr
- openssl x509 -req -in mqtt.lab.int.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out mqtt.lab.int.crt -days 365 -sha256
Mosquitto-Konfiguration anpassen
Öffne die Konfigurationsdatei von Mosquitto:
- sudo nano /etc/mosquitto/conf.d/default.conf
Füge folgende Zeilen hinzu:
listener 8883 cafile /etc/mosquitto/certs/ca.crt certfile /etc/mosquitto/certs/mosquitto.crt keyfile /etc/mosquitto/certs/mosquitto.key require_certificate false
Starte den Mosquitto-Dienst neu:
- sudo systemctl restart mosquitto
CA-Zertifikat auf die Clients ausrollen
Kopiere das CA-Zertifikat (ca.crt) auf die Clients, damit sie der Verbindung vertrauen können.
MQTT-Nachrichten senden mit Zertifikat
Licht im Wohnzimmer einschalten
- mosquitto_pub -h $MQTTSERVER -t home/wohnzimmer/status -m "on" -u xinux -P geheim --cafile ca.crt -p 8883
Licht im Wohnzimmer ausschalten
- mosquitto_pub -h $MQTTSERVER -t home/wohnzimmer/status -m "off" -u xinux -P geheim --cafile ca.crt -p 8883
Zusammenfassung
Erstelle eine CA, um dein Mosquitto-Zertifikat zu signieren, und verteile das CA-Zertifikat auf die Clients, um eine verschlüsselte und vertrauenswürdige Verbindung zu gewährleisten.