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.