TLS 连接的 CA 证书 node02.myqtthub.com/8883

时间:2021-01-04 08:27:04

标签: ssl ssl-certificate mqtt esp32

我在玩 mqtthub 和 ESP32 CHIP。我想以最安全的方式连接,所以我想可能会在开始时尝试使用 TLS 连接,稍后我还可以加密发送到代理(mqtthub)的数据。 我使用 /etc/ssl/certs path 到 CA 证书成功地连接到 Linux 上的 mosquitto。

我现在想将我需要的证书复制到闪存中,我用 C 编写的应用程序可以在它连接到端口 8883 上的代理时使用它。我怎么能猜出哪个公共 CA 证书是我需要的正确证书从 /etc/ssl/certs 复制?

PS:我在 mqtthub 论坛上找到了这个: https://decoder.link/sslchecker/node02.myqtthub.com/8883 可能有帮助吗?

2 个答案:

答案 0 :(得分:0)

查看从您的服务器返回的证书链,我看到根证书有一个通用名称 DST Root CA X3

$ openssl s_client -showcerts -connect node02.myqtthub.com:8883
depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3
verify return:1                                                       
depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
verify return:1
depth=0 CN = node02.myqtthub.com                                      
verify return:1

我主机中的目录 /etc/ssl/certs 恰好包含一个名为 DST_Root_CA_X3.pem 的证书。这将是一个很好的尝试。

答案 1 :(得分:0)

好的,我找到了解决方案。而不是指向整个目录

mosquitto_sub -h node02.myqtthub.com -p 8883 --capath /etc/mosquitto/certs -i linux_machine -u nariox -P myPassword -t test/connection -q 2

我用 cafile 而不是 capath 运行命令

mosquitto_sub -h node02.myqtthub.com -p 8883 --cafile /etc/mosquitto/certs/DST_Root_CA_X3.crt -i linux_machine -u nariox -P myPassword -t test/connection -q 2

什么解决了我的问题。如果有人可以向我解释为什么我将不胜感激