Stiamo sperimentando con MQTT nel nostro progetto.
Abbiamo una connessione sicura con il nostro broker mqtt, quindi mqtt su TLS (o mqtts) e usiamo un certificato firmato appropriato (non autofirmato) da una fonte attendibile.
Con alcuni dei nostri clienti dobbiamo passare il certificato radice CA (del fornitore di certificati che ha firmato il nostro certificato server) per consentire una procedura di handshake efficace.
Ad esempio quando si utilizza mosquitto:
# Publish
mosquitto_pub -h 'mqtt.example.com' -p 8883 --cafile "path/to/certificate/ca.pem" -u "username" -P "password" -t "planet/earth" -m "hello world"
# Subscribe
mosquitto_sub -h 'mqtt.example.com' -p 8883 -t "planet/earth" --cafile "path/to/certificate/ca.pem" -u "username" -P "password" -v -d
Se non passiamo il certificato CA in questi esempi sopra, non possiamo connetterci (la connessione è rifiutata).
Tuttavia, quando si utilizza questo client MQTT nodo non è necessario passare il certificato radice CA. Perchè no? Sospetto che questo client MQTT nodo utilizzi l'archivio certificati sul mio computer per convalidare il nostro certificato server, ma non riesco a trovare alcuna conferma su questo nella documentazione.
Sto attento ed è per questo che non voglio limitarmi a questa conclusione, poiché potrebbe esserci qualcosa di sbagliato nella configurazione del server / broker MQTT che consente la connessione senza convalidare correttamente il certificato del server?
Quindi la domanda: node-mqtt utilizza l'archivio certificati sul mio computer? O ha un negozio con certificati radice CA affidabili?