MQTT客户端是否有必要使用MQTT代理用于TLS的相同密钥证书?

时间:2016-10-13 10:39:24

标签: node.js ssl mqtt tls1.2 mosca

我使用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。

1 个答案:

答案 0 :(得分:2)

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

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

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

除了经纪人之外,NO BODY不应该访问私钥。