Mosquitto: Konfigurowanie Mosquitto do połączenia z innym serwerem (most)
Ta dokumentacja jest częścią przewodnika Mosty. Pełny przewodnik znajdziesz tutaj: Jak połączyć serwery Mosquitto (most).
👋 Witamy w dokumentacji Stackhero!
Stackhero zapewnia w pełni zarządzane środowisko Mosquitto MQTT cloud, zaprojektowane z myślą o niezawodności i elastyczności:
- Nielimitowana przepustowość wiadomości i transfery danych, dzięki czemu Twoje procesy nigdy nie napotkają sztucznych ograniczeń.
- Nielimitowana autoryzacja urządzeń poprzez własne zewnętrzne API, co umożliwia płynne wdrażanie i zarządzanie dostępem.
- Zaawansowane ACLs zapewniające precyzyjną kontrolę nad tematami, użytkownikami i działaniami.
- Własna nazwa domeny z wbudowanym HTTPS dla bezpiecznych, markowych endpointów (na przykład: https://mqtt.twoja-firma.com).
- Aktualizacje bez wysiłku: wprowadzaj ulepszenia lub poprawki bezpieczeństwa jednym kliknięciem.
- Stała wydajność i wysoki poziom bezpieczeństwa – każda instancja działa na prywatnej, dedykowanej infrastrukturze.
Przyspiesz swoje projekty IoT i ogranicz koszty operacyjne. Bezpieczną, gotową do produkcji instancję Mosquitto MQTT cloud hosting możesz uruchomić w zaledwie kilka minut.
W tym przykładzie zdalny serwer połączy się z instancją Stackhero, używając dedykowanego użytkownika z szyfrowaniem TLS dla maksymalnego bezpieczeństwa.
Najpierw utwórz nowego użytkownika na instancji MQTT Stackhero. Nazwijmy go bridge-1, z hasłem secretPassword.
Następnie, na zdalnym serwerze Mosquitto, możesz edytować plik konfiguracyjny mosquitto.conf (zwykle znajdujący się w /etc/mosquitto/mosquitto.conf), dodając następujące linie na końcu:
# TODO: zastąp "<XXXXXX>.stackhero-network.com" i "<PORT_TLS>" informacjami o swojej instancji Stackhero
connection <XXXXXX>.stackhero-network.com
address <XXXXXX>.stackhero-network.com:<PORT_TLS>
# TODO: zastąp "bridge-1" i "secretPassword" danymi nowo utworzonego użytkownika
remote_clientid bridge-1
remote_username bridge-1
remote_password secretPassword
start_type automatic
try_private true
# Tematy do udostępnienia, kierunek i QOS.
# Zauważ, że "both" wydaje się nie działać z nieznanego powodu.
topic # out 2
topic # in 2
# Włącz połączenie TLS, aby zaszyfrować dane między zdalnym serwerem Mosquitto a instancją Stackhero.
bridge_insecure false
bridge_capath /etc/ssl/certs
Przed ponownym uruchomieniem Mosquitto z nową konfiguracją upewnij się, że certyfikaty TLS istnieją na twoim zdalnym serwerze.
Sprawdź, czy katalog /etc/ssl/certs istnieje i zawiera pliki za pomocą polecenia:
ls /etc/ssl/certs
Jeśli istnieje i zawiera pliki, możesz po prostu ponownie uruchomić swój serwer Mosquitto.
Jeśli nie istnieje, możesz rozważyć wykonanie jednego z tych poleceń:
-
Na Ubuntu/Debian możesz uruchomić:
sudo apt-get install ca-certificates -
Na Alpine Linux możesz uruchomić:
apk add ca-certificates
Alternatywnie, możesz ręcznie pobrać certyfikat. Aby to zrobić, pobierz certyfikat CA do /etc/mosquitto/isrgrootx1.pem za pomocą następującego polecenia:
wget https://letsencrypt.org/certs/isrgrootx1.pem -O /etc/mosquitto/isrgrootx1.pem
Następnie edytuj plik mosquitto.conf, aby zastąpić bridge_capath /etc/ssl/certs na bridge_cafile /etc/mosquitto/isrgrootx1.pem.
Na koniec ponownie uruchom swój serwer Mosquitto.
Więcej informacji na temat konfiguracji mostów znajdziesz w oficjalnej dokumentacji Mosquitto.