Oto krótka instrukcja pozwalająca na szybko postawić system oparty na MQTT działający na Linuxie/FreeBSD w którym wszystkie funckje pełni mosquitto.

Spis treści

  1. Kompilacja mosquitto
  2. Tworzenie pliku z hasłami
  3. Uruchamianie brokera MQTT z TLS/SSL
  4. Uruchamianie klienta MQTT z TLS/SSL
  5. Sprawdzanie komunikacji

Kompilacja mosquitto

Mosquitto w wersji 1.6.12 można pobrać tutaj mosquitto-1.6.12.tar.gz Archiwum po rozpakowaniu kompilujemy uruchamiając w komendę make (pod Linuxem) lub gmake (pod FreeBSD). Należy pamiętać o tym, że w systemie muszą być zainstalowane wszystkie zależności niezbędne do poprawnej kompilacji. Po kompilacji utworzą się pliki wykonywalne

  • src/mosquitto
  • src/mosquitto_passwd
  • client/mosquitto_pub
  • client/mosquitto_rr
  • client/mosquitto_sub

które kopiujemy w dogodne dla nas miejsce. Warto skopiować też plik mosquitto.conf znajdujący się w głownym kataogu ze źródłami. Skompilowana wersja pod FreeBSD może być probrana stąd mosquitto_freebsd.tar.gz

Tworzenie pliku z hasłami

Plik z hasłam można stworzyć na 2 sposoby. Pierwszy z nich to utworzenie pliku zawierającego loginy oddzielone dwukropkiem od hasła:

user1:passwordX
user2:passwordY

Tak utworzony plik poddajemy działaniu mosquitto_passwd: mosquitto_passwd -U passwd_file Orzymamy plik w który widoczne będą loginy a dwukropku hash hasła

Druga opcja to użycie mosquitto_passwd w sposób interaktywny: mosquitto_passwd -c passwd_file user3 Wywołanie tego polecenie spowoduje, że program zapyta nas o hasło a po jego poprawnym dwukrotnym wpisaniu utowrzy w pliku passwd_file login user3 z hashe hasła które podaliśmy.

mosquitto_passwd pozwala również na usuwanie użytkowników poprzez użycie polecenia mosquitto_passwd -D passwd_file user1 - w tym przykładzie usunięty zostanie user1.

Po utworzeniu pliku z hasłami należy dookonać zmian w pliku konfiguracyjnym:

  • należy zmienić bądź dodać zapis allow_anonymous false
  • należy zmienić bądź dodać zapis per_listener_settings true
  • należy zmienić bądź dodać zapis password_file passwd_file

Uruchamianie brokera MQTT z TLS/SSL

W pliku konfiguracyjnym brokera musim wskazać pliki z ceryfikatem CA, certyfikatem serwera i kluczem serwera w formacie PEM.

cafile ca.crt
certfile server.crt
keyfile server.key

Następnie wydajemy polcenie ./mosquitto -v -c mosquitto.conf, opcja -v daje możliwość obejrzenia szczegółowych logów

Uruchamianie klienta MQTT z TLS/SSL

mosquitto_sub -h 192.168.X.Y -t "test" --cafile ca.crt -u user2 -P passwordY Nasz klient zacznie w ten sposób nasłuch w temacie "test" publikowanym przez borkera na maszynie 192.168.X.Y

Sprawdzanie komunikacji

mosquitto_pub -h 192.168.X.Y -t "test" --cafile ca.crt -m "Działa?" -u user2 -P passwordY Powyższe polcenie to uruchomienie serwera który wyśle do borkera komunikat "Działa?" w temacie "test". Jeżeli na konsoli klienta wyświetlił się napis "Działa?" to znaczy, że wszystko działa jak należy.

Poprzedni wpis Następny wpis