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

时间:2019-11-14 17:11:54

标签: amazon-web-services certificate ssl-certificate x509certificate2 handshake

我已经在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却创建了,并且我使用的是相同的证书,但是得到了。

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

2 个答案:

答案 0 :(得分:1)

  

证书未由受信任的CA正确签名

表示“服务器不知道证书文件的根CA。您需要将根CA信息发送到服务器”

从AWS制作证书文件时,可以获取证书文件和rootCA文件。

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

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

上面的代码只是伪代码。

答案 1 :(得分:1)

感谢淳, 是的,我解析了根CA并与证书链接在一起。

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