MQTT Installation · 6 min read · Oct 31, 2025
Comment installer le serveur Mosquitto MQTT sur Ubuntu 22.04

Mosquitto est une implémentation de serveur gratuite, open-source et légère du protocole MQTT. Il est conçu pour tous les appareils, des ordinateurs à carte unique à faible consommation d’énergie aux serveurs complets. MQTT fonctionne au-dessus du protocole TCP/IP et utilise votre réseau Internet domestique existant pour envoyer des messages à vos appareils IoT et répondre à ces messages. Il est écrit en langage C, ce qui le rend rapide et plus efficace que d’autres courtiers MQTT.
Cet article vous montrera comment installer le serveur Mosquitto sur Ubuntu 22.04.
Prérequis
- Un serveur exécutant Ubuntu 22.04.
- Un mot de passe root configuré sur votre serveur.
Installer les dépendances requises
Avant de commencer, il est recommandé de mettre à jour et d’améliorer tous les paquets système vers la version mise à jour. Vous pouvez les mettre à jour en exécutant la commande suivante :
apt update -y
apt upgrade -yAprès avoir mis à jour tous les paquets, exécutez la commande suivante pour installer les autres paquets requis :
apt-get install curl gnupg2 wget git apt-transport-https ca-certificates -yUne fois tous les paquets requis installés, vous pouvez passer à l’étape suivante.
Installer le serveur Mosquitto
Par défaut, le paquet Mosquitto n’est pas disponible dans le dépôt par défaut d’Ubuntu 22.04. Vous devrez donc ajouter le dépôt officiel de Mosquitto à l’APT. Vous pouvez l’ajouter avec la commande suivante :
add-apt-repository ppa:mosquitto-dev/mosquitto-ppa -yUne fois le dépôt ajouté à APT, vous pouvez l’installer avec la commande suivante :
apt install mosquitto mosquitto-clients -yUne fois l’installation terminée, vous pouvez vérifier l’état de Mosquitto avec la commande suivante :
systemctl status mosquittoVous devriez voir la sortie suivante :
? 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.
Créer un mot de passe administratif MQTT
Pour des raisons de sécurité, il est recommandé de configurer l’authentification par mot de passe pour MQTT.
Configurons un utilisateur admin et un mot de passe avec la commande suivante :
mosquitto_passwd -c /etc/mosquitto/passwd hiteshDéfinissez un mot de passe comme indiqué ci-dessous :
Password:
Reenter password:
Ensuite, éditez le fichier de configuration MQTT et définissez le port et le fichier de mot de passe.
nano /etc/mosquitto/conf.d/default.confAjoutez les lignes suivantes :
listener 1883
password_file /etc/mosquitto/passwd
Enregistrez et fermez le fichier, puis redémarrez le service Mosquitto pour appliquer les modifications.
systemctl restart mosquittoComment utiliser MQTT pour envoyer et recevoir des messages
Vous devrez utiliser le client Mosquitto pour vous connecter au serveur Mosquitto, puis envoyer et recevoir des messages sur différents sujets.
Avant d’envoyer et de recevoir des messages, vous devrez vous abonner à un sujet. Vous pouvez utiliser l’un des sujets suivants dans les applications d’automatisation domestique.
- home/lights/sitting_room
- home/lights/kitchen
- home/lights/master_bedroom
- home/lights/kids_bedroom
Exécutons la commande suivante pour s’abonner au sujet home/lights/kids_bedroom.
mosquitto_sub -u hitesh -P password -t "home/lights/kids_bedroom"Ensuite, ouvrez la nouvelle interface de terminal et publiez un message sur le sujet home/lights/kids_bedroom avec la commande suivante.
mosquitto_pub -u hitesh -P password -m "ON" -t "home/lights/kids_bedroom"Dans le premier terminal, vous obtiendrez la charge utile ON :
ON
Maintenant, allez dans le deuxième terminal et envoyez le message OFF sur le même sujet.
mosquitto_pub -u hitesh -P password -m "OFF" -t "home/lights/kids_bedroom"Vous devriez voir le message suivant dans le premier terminal :
ON
OFF
Une fois que vous avez terminé, vous pouvez passer à l’étape suivante.
Sécuriser Mosquitto avec SSL Let’s Encrypt
Pour sécuriser Mosquitto avec SSL, vous devrez installer le paquet client Certbot sur votre serveur.
Tout d’abord, installez le gestionnaire de paquets Snap en utilisant la commande suivante :
apt install snapdEnsuite, mettez à jour le paquet Snap en utilisant la commande suivante :
snap install core
snap refresh coreEnsuite, installez le paquet Certbot avec la commande suivante :
snap install --classic certbotEnsuite, créez un lien symbolique du binaire Certbot vers l’emplacement système.
ln -s /snap/bin/certbot /usr/bin/certbotEnsuite, exécutez la commande suivante pour générer un certificat SSL.
certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d mosquitto.linuxbuz.comVous devriez voir la sortie suivante :
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
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Vous pouvez voir tous les fichiers de certificat générés en utilisant la commande suivante :
ls /etc/letsencrypt/live/mosquitto.linuxbuz.com/Vous obtiendrez la sortie suivante :
cert.pem chain.pem fullchain.pem privkey.pem README
Ensuite, générez un certificat Diffie-Hellman en utilisant la commande suivante :
openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048Une fois que vous avez terminé, vous pouvez passer à l’étape suivante.
Configurer MQTT pour utiliser SSL Let’s Encrypt
Tout d’abord, copiez tous les certificats générés dans le répertoire Mosquitto en utilisant la commande suivante :
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.keyEnsuite, définissez la propriété appropriée pour le certificat Mosquitto.
chown -R mosquitto: /etc/mosquitto/certsEnsuite, éditez le fichier de configuration Mosquitto et définissez le SSL Let’s Encrypt.
nano /etc/mosquitto/conf.d/default.confAjoutez les lignes suivantes :
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
Enregistrez et fermez le fichier, puis redémarrez le service Mosquitto pour appliquer les modifications.
systemctl restart mosquittoEnsuite, vérifiez la connexion Mosquitto en utilisant la commande suivante :
mosquitto_pub -h mosquitto.linuxbuz.com -t "home/lights/kids_bedroom" -m "hello" -p 8883 --capath /etc/ssl/certs/ -u hitesh -P passwordUne fois que vous avez terminé, vous pouvez procéder à tester la connexion Mosquitto via un navigateur web.
Configurer les Websockets Mosquitto
Ensuite, vous devrez configurer les Websockets pour utiliser le protocole MQTT depuis les navigateurs. Vous pouvez l’activer en éditant le fichier de configuration par défaut de Mosquitto :
nano /etc/mosquitto/conf.d/default.confAjoutez les lignes suivantes :
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
Enregistrez et fermez le fichier, puis redémarrez le service Mosquitto pour appliquer les modifications.
systemctl restart mosquittoEnsuite, ouvrez votre interface de terminal et exécutez la commande suivante :
mosquitto_sub -u hitesh -P password -t "home/lights/kids_bedroom"Maintenant, ouvrez votre navigateur web et utilisez le client MQTT basé sur le navigateur pour tester la fonctionnalité WebSockets. Vous devriez voir l’écran suivant :

Fournissez l’hôte de votre serveur Mosquitto, le port, le nom d’utilisateur, le mot de passe, puis cliquez sur le bouton Connecter. Vous devriez voir l’écran suivant :

Maintenant, tapez n’importe quel sujet, message puis cliquez sur le bouton Publier.
Ensuite, retournez à l’interface de terminal. Vous devriez voir votre message publié dans la sortie suivante :
Hi
Conclusion
Dans cet article, nous avons expliqué comment installer le serveur Mosquitto et le sécuriser avec SSL Let’s Encrypt sur Ubuntu 22.04. Nous avons également testé Mosquitto via un client basé sur un navigateur. N’hésitez pas à me poser des questions si vous en avez.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.