ssl - SSL 在 MQTT 中的一种工作方式是怎样的?

标签 ssl mqtt

我想在 MQTT 中实现单向 SSL。根据我的研究,在 SSL 方式中,客户端有一个存储的默认证书。它将使用这个最初存储的证书并将其与来自代理方的证书进行比较。如果证书有效,则他们建立了安全连接。然而,我们的嵌入式软件工程师说客户端不需要证书,它只需要从代理端获取证书,然后它将用于安全连接。总而言之,我的理解是客户端有一个存储的证书,它将与经纪人拥有的证书进行比较。工程师说客户没有存储的证书,它只会从经纪人那里得到一个。

他已经通过使用任何最初存储的证书连接到我们的经纪人来测试它,并且它确实有效。现在我不明白 SSL 的一种真正工作方式。

最佳答案

SSL 与 MQTT 的工作方式与它与任何其他协议(protocol)的工作方式相同。

有2*种主要模式

  1. 仅服务器(代理)身份验证。在这种情况下,客户端连接到服务器(代理),代理将其证书发送给客户端。客户端检查证书是由客户端信任的人颁发(签名)的,这证明服务器(代理)是它声称的并且可以信任。客户端和服务器(代理)然后进行 key 协商以建立加密隧道。检查服务器证书是否由可信方颁发的行为是检查它是否由已知的 CA(证书颁发机构)证书签名,这意味着客户端需要保留一份可信证书列表。

  2. 客户端和服务器(代理)的相互认证。这与以前几乎相同,除了客户端还将它自己的唯一证书发送到服务器(代理),还检查它是否由已知的 CA 颁发,CN 字段用作客户端的用户 ID .

*还有完全不使用证书的预共享 key 模式。

关于ssl - SSL 在 MQTT 中的一种工作方式是怎样的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45855438/

相关文章:

javax.net.ssl.SSLPeerUnverifiedException : Hostname not verified:

android - retrofit 请求不适用于 Lollipop 之前的设备

node.js - 如何在 Node 中将套接字升级到 TLS?

.htaccess 为子域强制 http

asp.net-mvc - FilterAttributes 是否在 ASP.NET MVC 中缓存?

scala - AWS Lambda - 如何获取来自 AWS IOT 的数据的主题名称

mqtt - MQTT 中端口和监听器的区别

c++ - 这个对象初始化是怎么回事?

amazon-web-services - 从 Lambda 向 AWS IoT Core 发布 MQTT 消息