Installazione Server · 6 min read · Oct 31, 2025
Come installare il server Mosquitto MQTT su Ubuntu 22.04

Mosquitto è un server gratuito, open-source e leggero che implementa il protocollo MQTT. È progettato per tutti i dispositivi, dai computer a scheda singola a server completi. MQTT funziona sopra il protocollo TCP/IP e utilizza la tua rete domestica Internet esistente per inviare messaggi ai tuoi dispositivi IoT e rispondere a quei messaggi. È scritto in linguaggio C, il che lo rende veloce e più efficiente rispetto ad altri broker MQTT.
Questo post ti mostrerà come installare il server Mosquitto su Ubuntu 22.04.
Prerequisiti
- Un server che esegue Ubuntu 22.04.
- Una password di root configurata sul tuo server.
Installa le dipendenze richieste
Prima di iniziare, è consigliato aggiornare e migliorare tutti i pacchetti di sistema alla versione aggiornata. Puoi aggiornarli eseguendo il seguente comando:
apt update -y
apt upgrade -yDopo aver aggiornato tutti i pacchetti, esegui il seguente comando per installare gli altri pacchetti richiesti:
apt-get install curl gnupg2 wget git apt-transport-https ca-certificates -yUna volta installati tutti i pacchetti richiesti, puoi procedere al passaggio successivo.
Installa il server Mosquitto
Per impostazione predefinita, il pacchetto Mosquitto non è disponibile nel repository predefinito di Ubuntu 22.04. Quindi dovrai aggiungere il repository ufficiale di Mosquitto all’APT. Puoi aggiungerlo con il seguente comando:
add-apt-repository ppa:mosquitto-dev/mosquitto-ppa -yUna volta aggiunto il repository all’APT, puoi installarlo con il seguente comando:
apt install mosquitto mosquitto-clients -yUna volta completata l’installazione, puoi verificare lo stato di Mosquitto con il seguente comando:
systemctl status mosquittoDovresti vedere il seguente output:
? mosquitto.service - Mosquitto MQTT Broker
Loaded: loaded (/lib/systemd/system/mosquitto.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2022-12-06 04:50:33 UTC; 8s ago
Docs: man:mosquitto.conf(5)
man:mosquitto(8)
Process: 5491 ExecStartPre=/bin/mkdir -m 740 -p /var/log/mosquitto (code=exited, status=0/SUCCESS)
Process: 5492 ExecStartPre=/bin/chown mosquitto:mosquitto /var/log/mosquitto (code=exited, status=0/SUCCESS)
Process: 5493 ExecStartPre=/bin/mkdir -m 740 -p /run/mosquitto (code=exited, status=0/SUCCESS)
Process: 5494 ExecStartPre=/bin/chown mosquitto:mosquitto /run/mosquitto (code=exited, status=0/SUCCESS)
Main PID: 5495 (mosquitto)
Tasks: 1 (limit: 2242)
Memory: 1.3M
CPU: 23ms
CGroup: /system.slice/mosquitto.service
??5495 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
Dec 06 04:50:32 ubuntu2204 systemd[1]: Starting Mosquitto MQTT Broker...
Dec 06 04:50:33 ubuntu2204 systemd[1]: Started Mosquitto MQTT Broker.
Crea una password amministrativa MQTT
Per motivi di sicurezza, è consigliato configurare l’autenticazione con password per MQTT.
Impostiamo un utente admin e una password con il seguente comando:
mosquitto_passwd -c /etc/mosquitto/passwd hiteshImposta una password come mostrato di seguito:
Password:
Reenter password:
Successivamente, modifica il file di configurazione MQTT e definisci la porta e il file delle password.
nano /etc/mosquitto/conf.d/default.confAggiungi le seguenti righe:
listener 1883
password_file /etc/mosquitto/passwd
Salva e chiudi il file, quindi riavvia il servizio Mosquitto per applicare le modifiche.
systemctl restart mosquittoCome utilizzare MQTT per inviare e ricevere messaggi
Dovrai utilizzare il client Mosquitto per connetterti al server Mosquitto e poi inviare e ricevere messaggi su diversi argomenti.
Prima di inviare e ricevere messaggi, dovrai iscriverti a un argomento. Puoi utilizzare uno dei seguenti argomenti nelle applicazioni di automazione domestica.
- home/lights/sitting_room
- home/lights/kitchen
- home/lights/master_bedroom
- home/lights/kids_bedroom
Eseguiamo il seguente comando per iscriverci all’argomento home/lights/kids_bedroom.
mosquitto_sub -u hitesh -P password -t "home/lights/kids_bedroom"Successivamente, apri una nuova interfaccia terminale e pubblica un messaggio sull’argomento home/lights/kids_bedroom con il seguente comando.
mosquitto_pub -u hitesh -P password -m "ON" -t "home/lights/kids_bedroom"Nel primo terminale, riceverai il payload ON:
ON
Ora, vai al secondo terminale e invia il messaggio OFF sullo stesso argomento.
mosquitto_pub -u hitesh -P password -m "OFF" -t "home/lights/kids_bedroom"Dovresti vedere il seguente messaggio nel primo terminale:
ON
OFF
Una volta terminato, puoi procedere al passaggio successivo.
Sicurezza di Mosquitto con SSL Let’s Encrypt
Per proteggere Mosquitto con SSL, dovrai installare il pacchetto client Certbot sul tuo server.
Prima, installa il gestore di pacchetti Snap utilizzando il seguente comando:
apt install snapdSuccessivamente, aggiorna il pacchetto Snap utilizzando il seguente comando:
snap install core
snap refresh coreSuccessivamente, installa il pacchetto Certbot con il seguente comando:
snap install --classic certbotSuccessivamente, crea un collegamento simbolico del binario Certbot nella posizione di sistema.
ln -s /snap/bin/certbot /usr/bin/certbotSuccessivamente, esegui il seguente comando per generare un certificato SSL.
certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d mosquitto.linuxbuz.comDovresti vedere il seguente output:
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Requesting a certificate for mosquitto.linuxbuz.com
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/mosquitto.linuxbuz.com/fullchain.pem
Key is saved at: /etc/letsencrypt/live/mosquitto.linuxbuz.com/privkey.pem
This certificate expires on 2023-03-06.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
* Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
* Donating to EFF: https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Puoi vedere tutti i file di certificato generati utilizzando il seguente comando:
ls /etc/letsencrypt/live/mosquitto.linuxbuz.com/Riceverai il seguente output:
cert.pem chain.pem fullchain.pem privkey.pem README
Successivamente, genera un certificato Diffie-Hellman utilizzando il seguente comando:
openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048Una volta terminato, puoi procedere al passaggio successivo.
Configura MQTT per utilizzare SSL Let’s Encrypt
Prima, copia tutti i certificati generati nella directory di Mosquitto utilizzando il seguente comando:
cp /etc/letsencrypt/live/mosquitto.linuxbuz.com/fullchain.pem /etc/mosquitto/certs/server.pem
cp /etc/letsencrypt/live/mosquitto.linuxbuz.com/privkey.pem /etc/mosquitto/certs/server.keySuccessivamente, imposta la corretta proprietà del certificato Mosquitto.
chown -R mosquitto: /etc/mosquitto/certsSuccessivamente, modifica il file di configurazione di Mosquitto e definisci l’SSL di Let’s Encrypt.
nano /etc/mosquitto/conf.d/default.confAggiungi le seguenti righe:
listener 8883
certfile /etc/mosquitto/certs/server.pem
cafile /etc/ssl/certs/ISRG_Root_X1.pem
keyfile /etc/mosquitto/certs/server.key
dhparamfile /etc/ssl/certs/dhparam.pem
Salva e chiudi il file, quindi riavvia il servizio Mosquitto per applicare le modifiche.
systemctl restart mosquittoSuccessivamente, verifica la connessione di Mosquitto utilizzando il seguente comando:
mosquitto_pub -h mosquitto.linuxbuz.com -t "home/lights/kids_bedroom" -m "hello" -p 8883 --capath /etc/ssl/certs/ -u hitesh -P passwordUna volta terminato, puoi procedere a testare la connessione di Mosquitto tramite il browser web.
Configura i Websockets di Mosquitto
Successivamente, dovrai configurare i Websockets per utilizzare il protocollo MQTT all’interno dei browser. Puoi abilitarlo modificando il file di configurazione predefinito di Mosquitto:
nano /etc/mosquitto/conf.d/default.confAggiungi le seguenti righe:
listener 8083
protocol websockets
certfile /etc/mosquitto/certs/server.pem
cafile /etc/ssl/certs/ISRG_Root_X1.pem
keyfile /etc/mosquitto/certs/server.key
dhparamfile /etc/ssl/certs/dhparam.pem
Salva e chiudi il file, quindi riavvia il servizio Mosquitto per applicare le modifiche.
systemctl restart mosquittoSuccessivamente, apri la tua interfaccia terminale e esegui il seguente comando:
mosquitto_sub -u hitesh -P password -t "home/lights/kids_bedroom"Ora, apri il tuo browser web e utilizza il client MQTT basato su browser per testare la funzionalità dei WebSockets. Dovresti vedere la seguente schermata:

Fornisci l’host del tuo server Mosquitto, la porta, il nome utente, la password e fai clic sul pulsante Connetti. Dovresti vedere la seguente schermata:

Ora, digita qualsiasi argomento, messaggio e poi fai clic sul pulsante Pubblica.
Successivamente, torna all’interfaccia terminale. Dovresti vedere il tuo messaggio pubblicato nel seguente output:
Hi
Conclusione
In questo post, abbiamo spiegato come installare il server Mosquitto e proteggerlo con SSL Let’s Encrypt su Ubuntu 22.04. Abbiamo anche testato Mosquitto tramite un client basato su browser. Sentiti libero di chiedermi se hai domande.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.