Mosquitto: Tiltai

Kaip sujungti Mosquitto serverius (tiltas)

👋 Sveiki atvykę į Stackhero dokumentaciją!

Stackhero siūlo paruoštą naudoti Mosquitto MQTT cloud sprendimą, kuris suteikia daugybę privalumų, įskaitant:

  • Neriboti žinučių mainai ir perdavimai.
  • Neribota įrenginių autentifikacija per išorinę API.
  • Pažangios ACL temos, vartotojams ir veiksmams.
  • Pritaikomas domeno vardas apsaugotas HTTPS (pavyzdžiui, https://mqtt.jusu-imone.com).
  • Lengvi atnaujinimai vienu paspaudimu.
  • Optimali veikla ir tvirta sauga naudojant privačią ir dedikuotą VM.

Taupykite laiką ir supaprastinkite savo gyvenimą: tereikia 5 minučių išbandyti Stackhero Mosquitto MQTT cloud hosting sprendimą!

Sujungus kelis MQTT brokerius, galima sklandžiai keistis duomenimis tarp skirtingų vietų.

Įsivaizduokite, kad turite Mosquitto serverį sandėlyje su keliais prijungtais įrenginiais. Galite prijungti šį nuotolinį brokerį prie Stackhero instancijos (Mosquitto MQTT) naudodami „tilto“ funkciją. Ši konfigūracija leidžia įrenginiams, prijungtiems prie Stackhero instancijos ir sandėlio, bendrauti taip, lyg jie būtų prijungti prie to paties brokerio.

Sudėtingesniems naudojimo atvejams galite pritaikyti, kurie temos turi būti bendrinamos. Taip pat galite pridėti nuotolines temas prie sub-temos, pvz., „warehouse“, kur „warehouse/#“ užfiksuos visus jūsų nuotolinius įrenginius. Tai pasiekiama naudojant topic parinktį mosquitto.conf. Nors šiame vadove neaptariama ši sudėtinga konfigūracija, daugiau informacijos galite rasti oficialioje Mosquitto dokumentacijoje.

Šiame pavyzdyje nuotolinis serveris prisijungs prie Stackhero instancijos naudodamas specialų vartotoją su TLS šifravimu, siekiant maksimalaus saugumo.

Pirmiausia sukurkite naują vartotoją Stackhero MQTT instancijoje. Pavadinkime jį bridge-1, su slaptažodžiu secretPassword.

Tada, nuotoliniame Mosquitto serveryje, galite redaguoti mosquitto.conf konfigūracijos failą (dažniausiai esantį /etc/mosquitto/mosquitto.conf) pridėdami šias eilutes pabaigoje:

# TODO: pakeiskite "<XXXXXX>.stackhero-network.com" ir "<PORT_TLS>" savo Stackhero instancijos informacija
connection <XXXXXX>.stackhero-network.com
address <XXXXXX>.stackhero-network.com:<PORT_TLS>

# TODO: pakeiskite "bridge-1" ir "secretPassword" naujai sukurto vartotojo prisijungimo duomenimis
remote_clientid bridge-1
remote_username bridge-1
remote_password secretPassword

start_type automatic
try_private true

# Temos, kurias reikia bendrinti, kryptis ir QOS.
# Atkreipkite dėmesį, kad „both“ dėl nežinomos priežasties neveikia.
topic # out 2
topic # in 2

# Įgalinkite TLS ryšį, kad užšifruotumėte duomenis tarp savo nuotolinio Mosquitto serverio ir Stackhero instancijos.
bridge_insecure false
bridge_capath /etc/ssl/certs

Prieš perkraunant Mosquitto su nauja konfigūracija, įsitikinkite, kad jūsų nuotoliniame serveryje yra TLS sertifikatai.

Patikrinkite, ar egzistuoja /etc/ssl/certs katalogas ir ar jame yra failų, naudodami komandą:

ls /etc/ssl/certs

Jei jis egzistuoja ir jame yra failų, galite tiesiog perkrauti savo Mosquitto serverį.

Jei jo nėra, galite apsvarstyti galimybę vykdyti vieną iš šių komandų:

  • Ubuntu/Debian galite vykdyti:

    sudo apt-get install ca-certificates
    
  • Alpine Linux galite vykdyti:

    apk add ca-certificates
    

Arba galite rankiniu būdu atsisiųsti sertifikatą. Norėdami tai padaryti, atsisiųskite CA sertifikatą į /etc/mosquitto/isrgrootx1.pem naudodami šią komandą:

wget https://letsencrypt.org/certs/isrgrootx1.pem -O /etc/mosquitto/isrgrootx1.pem

Tada redaguokite mosquitto.conf failą, kad pakeistumėte bridge_capath /etc/ssl/certs į bridge_cafile /etc/mosquitto/isrgrootx1.pem.

Galiausiai, perkraukite savo Mosquitto serverį.

Daugiau informacijos apie tilto konfigūraciją galite rasti oficialioje Mosquitto dokumentacijoje.

Mosquitto nepateikia išsamių žurnalų, kad patikrintumėte, ar jūsų tiltas veikia.

Geriausias būdas užtikrinti jo funkcionalumą yra išbandyti jį tiesiogiai.

Galite prisijungti prie savo nuotolinio serverio ir užsiprenumeruoti testBridge temą naudodami esamą vartotoją (ir slaptažodį), deklaruotą nuotoliniame serveryje:

mosquitto_sub -h 127.0.0.1 -u <user> -P <password> -t "testBridge" -v

Kitoje terminalo lange galite prisijungti prie savo Stackhero Mosquitto instancijos naudodami esamą vartotoją (ir slaptažodį), deklaruotą jūsų Stackhero Mosquitto instancijoje:

mosquitto_sub -h <XXXXXX>.stackhero-network.com -p <PORT_TLS> -u <user> -P <password> -t "testBridge" -v

Atidarykite trečią terminalą ir išsiųskite testinę žinutę naudodami savo Stackhero instanciją (ir atitinkamą vartotoją):

mosquitto_pub -h <XXXXXX>.stackhero-network.com -p <PORT_TLS> -u <user> -P <password> -t "testBridge" -m "Message from Stackhero broker"

Turėtumėte matyti „Message from Stackhero broker“ savo pirmuose dviejuose terminaluose.

Galiausiai, išsiųskite testinę žinutę naudodami savo nuotolinę Mosquitto instanciją:

mosquitto_pub -h 127.0.0.1 -u <user> -P <password> -t "testBridge" -m "Message from remote broker"

Sveikiname! Dabar turite du MQTT serverius, sujungtus saugiai, su autentifikacija ir šifravimu!