0

我正在使用 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 客户端是否需要使用相同的证书和密钥才能连接到这个 MQTT 代理?

mosca MQTT 代理使用以下命令作为独立运行;

mosca --key ./tls-key.pem --cert ./tls-cert.pem --http-port 3000 --http-bundle --http-static ./ | pino

当运行 HTTPS 的 Web 浏览器与运行 HTTPS 的 Web 服务器通信时,Web 浏览器无需知道证书和密钥。我想知道这是否适用于 mqtt。

4

1 回答 1

2

对于基本的安全连接,客户端只需要知道用于签署代理证书的 CA 证书。它用它来向自己证明经纪人就是它声称的那个人。

如果您使用的是自签名证书(我猜您是),那么 CA 证书与代理证书相同,因此客户端和代理都将拥有相同的证书。

Web 浏览器有一个内置的 CA 证书列表,涵盖了大多数颁发证书的公共 CA。

除了经纪人之外,任何人都不应该访问私钥。

于 2016-10-13T11:19:09.757 回答