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.