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 sur la documentation de Stackhero !
Stackhero propose une solution Mosquitto MQTT cloud prête à l'emploi offrant de nombreux avantages, notamment :
- Échanges et transferts illimités de messages.
- Authentification illimitée des appareils via une API externe.
- ACLs avancées sur les topics, utilisateurs et actions.
- Nom de domaine personnalisable sécurisé avec HTTPS (par exemple, https://mqtt.votre-entreprise.com).
- Mises à jour simplifiées en un clic.
- Performance optimale et sécurité robuste 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 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.