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 oferuje gotowe do użycia rozwiązanie Mosquitto MQTT cloud, które zapewnia wiele korzyści, w tym:
- Nieograniczoną wymianę i transfer wiadomości.
- Nieograniczoną autoryzację urządzeń za pomocą zewnętrznego API.
- Zaawansowane ACL na tematy, użytkowników i działania.
- Dostosowywalną nazwę domeny zabezpieczoną za pomocą HTTPS (na przykład, https://mqtt.twoja-firma.com).
- Łatwe aktualizacje za pomocą jednego kliknięcia.
- Optymalną wydajność i solidne bezpieczeństwo dzięki prywatnej i dedykowanej VM.
Oszczędzaj czas i upraszczaj swoje życie: wystarczy 5 minut, aby wypróbować rozwiązanie Mosquitto MQTT cloud hosting Stackhero!
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.