Mosquitto: Mosquitto konfigurieren, um sich mit einem anderen Server zu verbinden (Bridge)

Diese Dokumentation ist Teil des Bridges-Leitfadens. Den vollständigen Leitfaden finden Sie hier: Wie man Mosquitto-Server miteinander verbindet (Bridge).

👋 Willkommen in der Stackhero-Dokumentation!

Stackhero bietet eine einsatzbereite Mosquitto MQTT Cloud Lösung, die zahlreiche Vorteile bietet, darunter:

  • Unbegrenzter Nachrichtenaustausch und -transfer.
  • Unbegrenzte Geräteauthentifizierung über eine externe API.
  • Erweiterte ACLs für Themen, Benutzer und Aktionen.
  • Anpassbarer Domainname gesichert mit HTTPS (zum Beispiel, https://mqtt.ihre-firma.com).
  • Mühelose Updates mit nur einem Klick.
  • Optimale Leistung und robuste Sicherheit durch eine private und dedizierte VM.

Sparen Sie Zeit und vereinfachen Sie Ihr Leben: Es dauert nur 5 Minuten, um die Mosquitto MQTT Cloud Hosting Lösung von Stackhero auszuprobieren!

In diesem Beispiel wird sich ein entfernter Server mit einer Stackhero-Instanz verbinden, indem ein dedizierter Benutzer mit TLS-Verschlüsselung für maximale Sicherheit verwendet wird.

Erstellen Sie zuerst einen neuen Benutzer auf der Stackhero MQTT-Instanz. Nennen wir ihn bridge-1 mit dem Passwort secretPassword.

Bearbeiten Sie als Nächstes auf dem entfernten Mosquitto-Server die Konfigurationsdatei mosquitto.conf (normalerweise unter /etc/mosquitto/mosquitto.conf zu finden), indem Sie die folgenden Zeilen am Ende hinzufügen:

# TODO: Ersetzen Sie "<XXXXXX>.stackhero-network.com" und "<PORT_TLS>" durch die Informationen Ihrer Stackhero-Instanz
connection <XXXXXX>.stackhero-network.com
address <XXXXXX>.stackhero-network.com:<PORT_TLS>

# TODO: Ersetzen Sie "bridge-1" und "secretPassword" durch die Anmeldedaten des neu erstellten Benutzers
remote_clientid bridge-1
remote_username bridge-1
remote_password secretPassword

start_type automatic
try_private true

# Themen zum Teilen, Richtung und QOS.
# Beachten Sie, dass "both" aus unbekannten Gründen nicht zu funktionieren scheint.
topic # out 2
topic # in 2

# Aktivieren Sie die TLS-Verbindung, um Daten zwischen Ihrem entfernten Mosquitto-Server und Ihrer Stackhero-Instanz zu verschlüsseln.
bridge_insecure false
bridge_capath /etc/ssl/certs

Bevor Sie Mosquitto mit seiner neuen Konfiguration neu starten, stellen Sie sicher, dass TLS-Zertifikate auf Ihrem entfernten Server vorhanden sind.

Überprüfen Sie, ob das Verzeichnis /etc/ssl/certs existiert und Dateien enthält, mit dem Befehl:

ls /etc/ssl/certs

Wenn es existiert und Dateien enthält, können Sie einfach Ihren Mosquitto-Server neu starten.

Wenn es nicht existiert, sollten Sie in Betracht ziehen, einen dieser Befehle auszuführen:

  • Auf Ubuntu/Debian können Sie ausführen:

    sudo apt-get install ca-certificates
    
  • Auf Alpine Linux können Sie ausführen:

    apk add ca-certificates
    

Alternativ können Sie das Zertifikat manuell herunterladen. Laden Sie dazu das CA-Zertifikat nach /etc/mosquitto/isrgrootx1.pem mit dem folgenden Befehl herunter:

wget https://letsencrypt.org/certs/isrgrootx1.pem -O /etc/mosquitto/isrgrootx1.pem

Bearbeiten Sie dann die mosquitto.conf-Datei, um bridge_capath /etc/ssl/certs durch bridge_cafile /etc/mosquitto/isrgrootx1.pem zu ersetzen.

Starten Sie schließlich Ihren Mosquitto-Server neu.

Für weitere Informationen zur Bridge-Konfiguration können Sie die offizielle Mosquitto-Dokumentation konsultieren.