@Florian33000 Bon chez moi ça fonctionne, en ayant chipoté un peu quand même.
mosquitto.conf (tls) :
#_____________________#
## TLS LISTENER
listener 8883 0.0.0.0
protocol mqtt
password_file /mosquitto/data/password_data
certfile /mosquitto/certs/server.crt
cafile /mosquitto/certs/ca.crt
keyfile /mosquitto/certs/server.key
capath /mosquitto/certs/
#_____________________#
Pour les étapes de génération de certificats de la CA, du serveur et du client, je suis passé par ce tutoriel : http://www.steveio.com/tag/messaging/
J'ai également suivi ses recommandations quant au fait que les trois entités doivent avoir un Common Name différent, le seul qui compte vraiment est celui du serveur pour lequel on doit stipuler son FQDN.
J'ai généré sur mon serveur mqtt les fichiers relatifs à la CA et au serveur, puis j'ai copié le ca.crt et ca.key sur mon laptop où j'ai mis une VM debian avec Mosquitto utilisé en client. Puis j'ai soucrit à un topic nommé "test" :
mosquitto_sub --cafile /mosquitto/certs/ca.crt --cert /mosquitto/certs/client.crt --key /
mosquitto/certs/client.key -h ida.xxx.ovh -p 8883 -q 1 -t "test" -d -u mosquitto -P rK2hdtXXXXXXXXX
-d c'est pour une verbosité debug, puis les credentials de connexion utilisés dans le password_file, ça fonctionne :
Enter PEM pass phrase:
Client null sending CONNECT
Client null received CONNACK (0)
Client null sending SUBSCRIBE (Mid: 1, Topic: test, QoS: 1, Options: 0x00)
Client null received SUBACK
Subscribed (mid: 1): 1
Puis j'ai essayé de publier un message :
mosquitto_pub --cafile /mosquitto/certs/ca.crt --cert /mosquitto/certs/client.crt --key /
mosquitto/certs/client.key -h ida.xxx.ovh -p 8883 -q 1 -t "test" -i anyclientID --tls-vers
ion tlsv1.3 -m "Hello" -d -u mosquitto -P rK2hdtXXXXXXXXX
Résultat le message est lu :
Client null received PUBLISH (d0, q1, r0, m1, 'test', ... (5 bytes))
Client null sending PUBACK (m1, rc0)
Hello
En revanche, je précise qu'avec MQTT Explorer, je récolte systématiquement une erreur. En CLI par contre RAS.