Configuration TLS

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 "#"