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 -y

Aprè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 -y

Une 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 -y

Une fois le dépôt ajouté à APT, vous pouvez l’installer avec la commande suivante :

apt install mosquitto mosquitto-clients -y

Une fois l’installation terminée, vous pouvez vérifier l’état de Mosquitto avec la commande suivante :

systemctl status mosquitto

Vous 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 hitesh

Dé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.conf

Ajoutez 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 mosquitto

Comment 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 snapd

Ensuite, mettez à jour le paquet Snap en utilisant la commande suivante :

snap install core   
snap refresh core

Ensuite, installez le paquet Certbot avec la commande suivante :

snap install --classic certbot

Ensuite, créez un lien symbolique du binaire Certbot vers l’emplacement système.

ln -s /snap/bin/certbot /usr/bin/certbot

Ensuite, 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.com

Vous 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 2048

Une 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.key

Ensuite, définissez la propriété appropriée pour le certificat Mosquitto.

chown -R mosquitto: /etc/mosquitto/certs

Ensuite, éditez le fichier de configuration Mosquitto et définissez le SSL Let’s Encrypt.

nano /etc/mosquitto/conf.d/default.conf

Ajoutez 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 mosquitto

Ensuite, 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 password

Une 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.conf

Ajoutez 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 mosquitto

Ensuite, 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.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.