node.js - MQTT 客户端是否需要具有与 MQTT 代理用于 TLS 相同的 key 和证书?

标签 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 客户端是否需要使用相同的证书和 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/

相关文章:

azure - Azure 云中的 MQTT 代理

php - PayPal TLS 测试 URL - PHP curl SSL 协议(protocol)错误

node.js - 无法打印nginx后面的expressjs服务器上的请求的IP?

javascript - Nodejs 和 javascript 用户代理行为

json - 在 Node js 中使用 Avro 序列化数据

android - Android 上的 Cordova 应用程序使用 SSL 发送多部分/表单数据导致机架应用程序错误 : #<EOFError: bad content body>

ubuntu - 鱿鱼 3.5 https 设置 ubuntu 16.04

python - 在 Flask 模板中显示 MQTT 数据

mysql - Nodejs 在函数执行之间等待

node.js - 在 Mongoose 中将数组更新到文档中