Mosquitto: Configurare Mosquitto per connettersi a un altro server (bridge)
Questa documentazione fa parte della guida Ponti. Consulta la guida completa qui: Come connettere insieme i server Mosquitto (bridge).
👋 Benvenuti nella documentazione di Stackhero!
Stackhero offre una soluzione Mosquitto MQTT cloud pronta all'uso che fornisce numerosi vantaggi, tra cui:
- Scambi e trasferimenti illimitati di messaggi.
- Autenticazione illimitata dei dispositivi tramite un'API esterna.
- ACL avanzate su argomenti, utenti e azioni.
- Nome di dominio personalizzabile sicuro con HTTPS (ad esempio, https://mqtt.your-company.com).
- Aggiornamenti semplificati con un solo clic.
- Prestazioni ottimali e sicurezza robusta grazie a una VM privata e dedicata.
Risparmiate tempo e semplificate la vostra vita: bastano 5 minuti per provare la soluzione Mosquitto MQTT cloud hosting di Stackhero!
In questo esempio, un server remoto si connetterà a un'istanza Stackhero utilizzando un utente dedicato con crittografia TLS per la massima sicurezza.
Per prima cosa, create un nuovo utente sull'istanza MQTT Stackhero. Chiamiamolo bridge-1, con la password secretPassword.
Successivamente, sul server Mosquitto remoto, è possibile modificare il file di configurazione mosquitto.conf (di solito situato in /etc/mosquitto/mosquitto.conf) aggiungendo le seguenti righe alla fine:
# TODO: sostituire "<XXXXXX>.stackhero-network.com" e "<PORT_TLS>" con le informazioni della vostra istanza Stackhero
connection <XXXXXX>.stackhero-network.com
address <XXXXXX>.stackhero-network.com:<PORT_TLS>
# TODO: sostituire "bridge-1" e "secretPassword" con le credenziali del nuovo utente creato
remote_clientid bridge-1
remote_username bridge-1
remote_password secretPassword
start_type automatic
try_private true
# Topic da condividere, direzione e QOS.
# Nota che "both" sembra non funzionare per una ragione sconosciuta.
topic # out 2
topic # in 2
# Abilitare la connessione TLS per crittografare i dati tra il server Mosquitto remoto e l'istanza Stackhero.
bridge_insecure false
bridge_capath /etc/ssl/certs
Prima di riavviare Mosquitto con la sua nuova configurazione, assicurarsi che i certificati TLS esistano sul server remoto.
Verificare che la directory /etc/ssl/certs esista e contenga file con il comando:
ls /etc/ssl/certs
Se esiste e contiene file, è possibile semplicemente riavviare il server Mosquitto.
Se non esiste, si potrebbe considerare di eseguire uno di questi comandi:
-
Su Ubuntu/Debian, è possibile eseguire:
sudo apt-get install ca-certificates -
Su Alpine Linux, si potrebbe eseguire:
apk add ca-certificates
In alternativa, è possibile scaricare manualmente il certificato. Per fare ciò, scaricare il certificato CA in /etc/mosquitto/isrgrootx1.pem utilizzando il seguente comando:
wget https://letsencrypt.org/certs/isrgrootx1.pem -O /etc/mosquitto/isrgrootx1.pem
Quindi, modificare il file mosquitto.conf per sostituire bridge_capath /etc/ssl/certs con bridge_cafile /etc/mosquitto/isrgrootx1.pem.
Infine, riavviare il server Mosquitto.
Per ulteriori informazioni sulla configurazione del bridge, è possibile consultare la documentazione ufficiale di Mosquitto.