Estamos experimentando con MQTT en nuestro proyecto.
Tenemos una conexión segura con nuestro agente mqtt, así que mqtt sobre TLS (o mqtts) y usamos un certificado firmado apropiado (no autofirmado) de una fuente confiable.
Con algunos de nuestros clientes tenemos que pasar el certificado raíz de CA (del proveedor del certificado que firmó nuestro certificado de servidor) para permitir un procedimiento de intercambio exitoso.
Por ejemplo, al usar 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
Si no pasamos el certificado CA en estos ejemplos anteriores, no podemos conectarnos (se rechaza la conexión).
Pero al utilizar este cliente MQTT de nodo no necesitamos pasar el certificado raíz de CA. Por qué no? Sospecho que este cliente MQTT de nodo utiliza el almacén de certificados en mi computadora para validar nuestro certificado de servidor, pero no puedo encontrar ninguna confirmación al respecto en la documentación.
Tengo cuidado y es por eso que no solo quiero llegar a esta conclusión, ya que también podría haber algún problema con la configuración del servidor / agente MQTT que permita la conexión sin validar el certificado del servidor correctamente.
Entonces, la pregunta: ¿node-mqtt usa el almacén de certificados en mi computadora? ¿O tiene una tienda con certificados raíz de CA confiables?