我想在 MQTT 中实现单向 SSL。根据我的研究,在 SSL 方式中,客户端有一个存储的默认证书。它将使用这个最初存储的证书并将其与来自代理方的证书进行比较。如果证书有效,则他们建立了安全连接。然而,我们的嵌入式软件工程师说客户端不需要证书,它只需要从代理端获取证书,然后它将用于安全连接。总而言之,我的理解是客户端有一个存储的证书,它将与经纪人拥有的证书进行比较。工程师说客户没有存储的证书,它只会从经纪人那里得到一个。
他已经通过使用任何最初存储的证书连接到我们的经纪人来测试它,并且它确实有效。现在我不明白 SSL 的一种真正工作方式。
最佳答案
SSL 与 MQTT 的工作方式与它与任何其他协议(protocol)的工作方式相同。
有2*种主要模式
仅服务器(代理)身份验证。在这种情况下,客户端连接到服务器(代理),代理将其证书发送给客户端。客户端检查证书是由客户端信任的人颁发(签名)的,这证明服务器(代理)是它声称的并且可以信任。客户端和服务器(代理)然后进行 key 协商以建立加密隧道。检查服务器证书是否由可信方颁发的行为是检查它是否由已知的 CA(证书颁发机构)证书签名,这意味着客户端需要保留一份可信证书列表。
客户端和服务器(代理)的相互认证。这与以前几乎相同,除了客户端还将它自己的唯一证书发送到服务器(代理),还检查它是否由已知的 CA 颁发,CN 字段用作客户端的用户 ID .
*还有完全不使用证书的预共享 key 模式。
关于ssl - SSL 在 MQTT 中的一种工作方式是怎样的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45855438/