MQTT Absichern durch ein selbst signierten Zertifikats für Mosquitto

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

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 1825 -sha256

Kopiere der Dateien

  • cp ca.crt mqtt.lab.int.crt mqtt.lab.int.key /etc/mosquitto/certs/
  • chown -R mosquitto:mosquitto certs/

Mosquitto-Konfiguration anpassen

Öffne die Konfigurationsdatei von Mosquitto:

  • sudo vi /etc/mosquitto/conf.d/default.conf

Füge folgende Zeilen hinzu:

listener 1883 0.0.0.0
password_file /etc/mosquitto/passwd
allow_anonymous false
cafile /etc/mosquitto/certs/ca.crt
certfile /etc/mosquitto/certs/mqtt.lab.int.crt
keyfile /etc/mosquitto/certs/mqtt.lab.int.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.