![如何为安全 MQTT 生成可信的 SSL 证书?](https://linux22.com/image/1597566/%E5%A6%82%E4%BD%95%E4%B8%BA%E5%AE%89%E5%85%A8%20MQTT%20%E7%94%9F%E6%88%90%E5%8F%AF%E4%BF%A1%E7%9A%84%20SSL%20%E8%AF%81%E4%B9%A6%EF%BC%9F.png)
我是信息安全领域的新手,有关 SSL 的一切都超出了我的理解范围。
目前,我正在尝试让 IoT 设备 (ESP32) 连接到 MQTT 代理,broker.losant.com:8883
在我的例子中是通过 TLS。该设备已刷入Mongoose 操作系统依赖于mbedTLS库来保护 MQTT。
我遇到的问题是,当我使用自签名证书时,mbedTL 显示“该证书未由受信任的 CA 正确签名”。我可以在哪里获得这个可信证书或者我应该如何生成它?我已经在互联网上搜索了很长时间,但遗憾的是,Mongoose-OS 文档中没有任何内容。
请告诉我需要遵循的步骤才能建立并运行安全 MQTT 连接。
答案1
如果你发起 TLS 连接,服务器将向你发送证书以证明其身份。这是获取已认证联系。
此证书必须针对您要连接的域名颁发。该证书由受信任的证书颁发机构 (CA)以便您验证声明(否则,每个人都可以为您的域颁发证书)。应用程序必须知道所使用的 CA 是可信的。标准操作系统和浏览器附带集成的信任库所以用户永远不会注意到这一点。
对于嵌入式应用程序,您必须手动包含服务器使用的 CA 证书。
服务器将在握手期间向您发送其证书。它还可能向您发送整个证书链,包括 CA 证书。如果不是这种情况,服务器证书可能包含一个可从中下载的 URL。