Mosquitto: Configurer Mosquitto pour se connecter à un autre serveur (bridge)
Cette documentation fait partie du guide Ponts. Consultez le guide complet ici : Comment connecter des serveurs Mosquitto ensemble (bridge).
👋 Bienvenue dans la documentation Stackhero !
Stackhero vous offre un environnement Mosquitto MQTT cloud entièrement géré, conçu pour la fiabilité et la flexibilité :
- Débit illimité pour les messages et les transferts de données, afin que vos workflows ne soient jamais limités artificiellement.
- Authentification illimitée des appareils via votre propre API externe, pour simplifier l'intégration et la gestion des accès.
- ACLs avancées pour un contrôle précis des topics, des utilisateurs et des actions.
- Un nom de domaine personnalisé avec HTTPS intégré pour des endpoints sécurisés et à l'image de votre marque (par exemple : https://mqtt.votre-entreprise.com).
- Mises à jour sans tracas : appliquez les améliorations ou correctifs de sécurité en un seul clic.
- Performance constante et sécurité renforcée, chaque instance fonctionnant sur une infrastructure privée et dédiée.
Accélérez vos projets IoT et réduisez la charge opérationnelle. Vous pouvez mettre en place une instance Mosquitto MQTT cloud hosting sécurisée et prête pour la production en seulement quelques minutes.
Dans cet exemple, un serveur distant se connectera à une instance Stackhero en utilisant un utilisateur dédié avec un chiffrement TLS pour une sécurité maximale.
Tout d'abord, créez un nouvel utilisateur sur l'instance MQTT Stackhero. Appelons-le bridge-1, avec le mot de passe secretPassword.
Ensuite, sur le serveur Mosquitto distant, vous pouvez éditer le fichier de configuration mosquitto.conf (généralement situé dans /etc/mosquitto/mosquitto.conf) en ajoutant les lignes suivantes à la fin :
# TODO: remplacez "<XXXXXX>.stackhero-network.com" et "<PORT_TLS>" par les informations de votre instance Stackhero
connection <XXXXXX>.stackhero-network.com
address <XXXXXX>.stackhero-network.com:<PORT_TLS>
# TODO: remplacez "bridge-1" et "secretPassword" par les identifiants de l'utilisateur nouvellement créé
remote_clientid bridge-1
remote_username bridge-1
remote_password secretPassword
start_type automatic
try_private true
# Topics à partager, direction et QOS.
# Notez que "both" semble ne pas fonctionner pour une raison inconnue.
topic # out 2
topic # in 2
# Activer la connexion TLS pour chiffrer les données entre votre serveur Mosquitto distant et votre instance Stackhero.
bridge_insecure false
bridge_capath /etc/ssl/certs
Avant de redémarrer Mosquitto avec sa nouvelle configuration, assurez-vous que les certificats TLS existent sur votre serveur distant.
Vérifiez que le répertoire /etc/ssl/certs existe et contient des fichiers avec la commande :
ls /etc/ssl/certs
S'il existe et contient des fichiers, vous pouvez simplement redémarrer votre serveur Mosquitto.
S'il n'existe pas, vous pouvez envisager d'exécuter l'une de ces commandes :
-
Sur Ubuntu/Debian, vous pouvez exécuter :
sudo apt-get install ca-certificates -
Sur Alpine Linux, vous pouvez exécuter :
apk add ca-certificates
Alternativement, vous pouvez télécharger manuellement le certificat. Pour ce faire, téléchargez le certificat CA dans /etc/mosquitto/isrgrootx1.pem en utilisant la commande suivante :
wget https://letsencrypt.org/certs/isrgrootx1.pem -O /etc/mosquitto/isrgrootx1.pem
Ensuite, éditez le fichier mosquitto.conf pour remplacer bridge_capath /etc/ssl/certs par bridge_cafile /etc/mosquitto/isrgrootx1.pem.
Enfin, redémarrez votre serveur Mosquitto.
Pour plus d'informations sur la configuration des bridges, vous pouvez consulter la documentation officielle de Mosquitto.