我正在使用 node.js mosca MQTT 代理和 node.js mqtt 包来实现 mqtt 客户端。
https://github.com/mcollina/mosca
https://www.npmjs.com/package/mqtt
我想通过 TLS 实现 MQTT。假设 mosca MQTT 代理使用 tls-cert.pem 和 tls-key.pem,mqtt 客户端是否需要使用相同的证书和 key 才能连接到此 MQTT 代理?
mosca MQTT 代理使用以下命令作为独立运行;
mosca --key ./tls-key.pem --cert ./tls-cert.pem --http-port 3000 --http-bundle --http-static ./|皮诺
当运行 HTTPS 的 Web 浏览器与运行 HTTPS 的 Web 服务器通信时,Web 浏览器无需知道证书和 key 。我想知道这是否适用于 mqtt。
最佳答案
对于基本的安全连接,客户端只需要知道用于签署代理证书的 CA 证书。它使用它来向自己证明经纪人是它声称的那个人。
如果您使用的是自签名证书(我猜您是),那么 CA 证书与代理证书相同,因此客户端和代理都将拥有相同的证书。
Web 浏览器有一个内置的 CA 证书列表,涵盖了大多数颁发证书的公共(public) CA。
除了经纪人之外,任何人都不应有权访问私钥。
关于node.js - MQTT 客户端是否需要具有与 MQTT 代理用于 TLS 相同的 key 和证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40018700/