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 Ihnen eine vollständig verwaltete Mosquitto MQTT Cloud-Umgebung, die auf Zuverlässigkeit und Flexibilität ausgelegt ist:

  • Unbegrenzter Nachrichtendurchsatz und unbegrenzte Datenübertragungen, damit Ihre Workflows niemals auf künstliche Grenzen stoßen.
  • Unbegrenzte Geräteauthentifizierung über Ihre eigene externe API, um Onboarding und Zugriffsverwaltung nahtlos zu gestalten.
  • Erweiterte ACLs für eine feingranulare Steuerung von Topics, Benutzern und Aktionen.
  • Ein individueller Domainname mit integriertem HTTPS für sichere, markenkonforme Endpunkte (zum Beispiel: https://mqtt.your-company.com).
  • Updates ohne Aufwand: Verbesserungen oder Sicherheitspatches mit nur einem Klick anwenden.
  • Gleichbleibende Performance und hohe Sicherheit, da jede Instanz auf einer privaten, dedizierten Infrastruktur läuft.

Beschleunigen Sie Ihre IoT-Projekte und reduzieren Sie den Betriebsaufwand. Sie können in nur wenigen Minuten eine sichere, produktionsreife Mosquitto MQTT Cloud Hosting-Instanz bereitstellen.

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.