TLS 握手表示 AWS IoT 控制台创建的证书无效

TLS Handshaking says Certificates created by AWS IoT Console are invalid

我已经在 AWS IoT 控制台创建了一个证书。当我 运行 Raspberry Pi 上的 AWS 示例中的证书时,一切正常。我的证书嵌入到代码中用于测试目的,我使用 mbedtls_x509_crt_parse 函数来解析证书。

现在,我想 运行 MCU 上的应用程序,但在握手期间出现 -2700 错误。 我正在使用嵌入到代码中的相同证书,但出现错误。

Raspberry Pi 和 MCU 项目似乎完全相同。只是MCU上没有时间定义(MBEDTLS_HAVE_TIME_DATE注释掉)。

我正在使用 mbedTls 实施的 AWS IoT SDK 中的 mbedtls_wrapper.c 实施。当我尝试验证证书时,收到“!证书未由受信任的 CA 正确签名”的警告。 问题是我没有创建证书,AWS 做了,我使用相同的证书但得到了这个。

我不是这方面的专家?谢谢

The certificate is not correctly signed by the trusted CA

表示"Root CA of your cert file is unknown to server. You need to info Root CA to server"

当您从 AWS 生成证书文件时,您可以得到您的证书文件和 rootCA 文件。

您是否使用 rootCA 文件通过 SSL 进行连接?

ex) ssl.connect("x.x.x.x", cert="xx.cert", rootCA = "xx.cert" , .. )

以上代码只是伪代码

谢谢春, 是的,我解析了根 CA 并与我的证书链接。

就我而言,这似乎与内存有关。它是一个小型系统,只有 KB 的 RAM。我只是增加了堆大小并开始工作。 如果没有足够的内存,我希望 mbedtls 给出一个特定的错误。 谢谢。