Mosquitto: Configurer Mosquitto pour se connecter à un autre serveur (bridge)
Cette documentation fait partie du guide Bridges. Consultez le guide complet ici : Comment connecter des serveurs Mosquitto entre eux (bridge).
👋 Bienvenue sur la documentation de Stackhero !
Stackhero propose une solution Mosquitto MQTT cloud prête à l'emploi qui offre de nombreux avantages, notamment :
- Echanges et transferts de messages illimités.
- Authentification de périphériques illimités via une API externe.
- ACLs avancées sur les topics, les utilisateurs et les actions.
- Nom de domaine personnalisable sécurisé en HTTPS (par exemple, https://mqtt.votre-entreprise.com).
- Mises à jour simplifiées en un clic.
- Performance optimale et sécurité renforcée grâce à une VM privée et dédiée.
Gagnez du temps et simplifiez-vous la vie : il suffit de 5 minutes pour essayer la solution Mosquitto MQTT cloud hosting de Stackhero !
Dans cet exemple, un serveur distant va se connecter à une instance Stackhero en utilisant un utilisateur dédié avec chiffrement TLS pour une sécurité maximale.
Commencez par créer un nouvel utilisateur sur l'instance MQTT Stackhero. Appelons-le bridge-1, avec le mot de passe secretPassword.
Ensuite, sur le serveur Mosquitto distant, éditez 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 du nouvel utilisateur
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
# Activez la connexion TLS pour chiffrer les échanges entre votre serveur Mosquitto distant et votre instance Stackhero.
bridge_insecure false
bridge_capath /etc/ssl/certs
Avant de redémarrer Mosquitto avec cette nouvelle configuration, vérifiez que les certificats TLS existent sur votre serveur distant.
Assurez-vous que le dossier /etc/ssl/certs existe et contient des fichiers avec la commande :
ls /etc/ssl/certs
Si le dossier existe et contient des fichiers, vous pouvez simplement redémarrer votre serveur Mosquitto.
Si ce n'est pas le cas, vous pouvez envisager d'exécuter l'une de ces commandes :
-
Sur Ubuntu/Debian, exécutez :
sudo apt-get install ca-certificates -
Sur Alpine Linux, exécutez :
apk add ca-certificates
Vous pouvez aussi télécharger le certificat manuellement. Pour cela, téléchargez le certificat CA dans /etc/mosquitto/isrgrootx1.pem avec la commande suivante :
wget https://letsencrypt.org/certs/isrgrootx1.pem -O /etc/mosquitto/isrgrootx1.pem
Ensuite, modifiez 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, consultez la documentation officielle de Mosquitto.