【问题标题】:Is it necessary for MQTT client to have same key, cert as used by MQTT broker for TLS?MQTT 客户端是否需要与 MQTT 代理用于 TLS 的密钥、证书相同?
【发布时间】:2017-02-22 10:36:18
【问题描述】:

我正在使用 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 的网络浏览器与运行 HTTPS 的网络服务器通信时,网络浏览器不需要知道证书和密钥。我想知道这是否适用于mqtt。

【问题讨论】:

  • 您想通过证书进行客户端身份验证,还是只是确保客户端-代理连接是安全的?
  • 只要确保连接安全。

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


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-16
    • 1970-01-01
    • 1970-01-01
    • 2017-02-22
    • 2013-09-24
    • 2023-03-23
    相关资源
    最近更新 更多