TLS
TLS (Transport Layer Security) et ACL (Access Control List) sont deux mécanismes de sécurité différents pour la communication dans les systèmes MQTT.
TLS est un protocole de sĂ©curitĂ© qui permet de chiffrer les communications entre deux machines pour empĂŞcher toute interception ou modification par un tiers malveillant. Cela est gĂ©nĂ©ralement utilisĂ© pour garantir la confidentialitĂ© et l’intĂ©gritĂ© des donnĂ©es lorsqu’elles sont transmises sur des rĂ©seaux publics tels qu’Internet.
Configuration de TLS
Pour configurer le chiffrement TLS (Transport Layer Security) sur MQTT, vous devez suivre les Ă©tapes suivantes :
- Générer des certificats SSL/TLS pour le broker MQTT :
Vous pouvez gĂ©nĂ©rer des certificats auto-signĂ©s Ă l’aide de la commande openssl :
openssl req -x509 -newkey rsa:2048 -keyout mqtt.key -out mqtt.crt -days 365 -nodes
- Copier les certificats SSL/TLS dans un répertoire dédié :
Vous pouvez créer un répertoire dédié pour les certificats et y copier les fichiers mqtt.crt et mqtt.key
sudo mkdir /etc/mosquitto/certs
sudo cp mqtt.crt mqtt.key /etc/mosquitto/certs/
- Modifier la configuration du broker MQTT pour activer TLS :
Il est nécessaire de modifier le fichier de configuration du broker MQTT pour activer le chiffrement TLS. Vous pouvez ajouter les lignes suivantes à la fin du fichier /etc/mosquitto/mosquitto.conf :
#Activation du chiffrement TLS
listener 8883
cafile /etc/mosquitto/certs/mqtt.crt
certfile /etc/mosquitto/certs/mqtt.crt
keyfile /etc/mosquitto/certs/mqtt.key
tls_version tlsv1.2
Cela indique au broker MQTT d’Ă©couter sur le port 8883 et d’utiliser le certificat mqtt.crt pour le chiffrement TLS.
- Redémarrer le broker MQTT :
Après avoir modifiĂ© le fichier de configuration, vous devez redĂ©marrer le broker MQTT pour qu’il prenne en compte les modifications :
sudo systemctl restart mosquitto
Vous pouvez ensuite utiliser le client MQTT mosquitto_pub ou mosquitto_sub en utilisant le port 8883 pour une communication chiffrĂ©e. Assurez-vous d’ajouter l’option -p 8883 Ă la commande pour spĂ©cifier le port.
- Vérifiez que le certificat est valide en exécutant la commande suivante :
openssl x509 -in certificat.crt -text -noout
- Établissez une connexion sécurisée avec le serveur MQTT en utilisant la commande openssl s_client :
openssl s_client -connect mqtt.example.com:8883 -CAfile certificat.crt
Vous devez remplacer mqtt.example.com par l’adresse IP ou le nom de domaine du broker MQTT et certificat.crt par le nom du fichier de certificat tĂ©lĂ©chargĂ© prĂ©cĂ©demment. Si la connexion est Ă©tablie avec succès, cela indique que le certificat est correctement configurĂ©.
Vous pouvez Ă©galement utiliser l’outil mosquitto_sub pour tester la connexion en utilisant le certificat TLS
mosquitto_sub -h 192.168.224.55 -p 8883 --cafile mqtt.crt -t "#"