gpt4 book ai didi

amazon-web-services - 握手后 AWS IoT 关闭 mqtt 连接

转载 作者:太空宇宙 更新时间:2023-11-03 13:34:11 25 4
gpt4 key购买 nike

我有一个使用 AWS SDK 连接 AWS IoT 的实现。它在 Linux 上运行良好。我正在尝试将其移植到基于 FreeRTOS 的嵌入式系统。mbedtls 在带有 ssl 包装器的 AWS SDK 中使用。

在 mbedtls 方面有一些小的修改(我提供了从 sntp 到 mbedtls 的时间)。

当我启用 mbedtls 调试时,我发现一切正常并且握手已完成。但在握手后,我收到了来自 AWS SDK 的连接关闭消息。

ssl_cli.c : 3303 - client state: MBEDTLS_SSL_FLUSH_BUFFERS (14)
ssl_cli.c : 3303 - client state: MBEDTLS_SSL_HANDSHAKE_WRAPUP (15)
ssl_tls.c : 5024 - <= handshake wrapup
ssl_tls.c : 6346 - <= handshake

ssl_tls.c : 2701 - => write record
ssl_tls.c : 1258 - => encrypt buf
ssl_tls.c : 1400 - before encrypt: msglen = 125, including 0 bytes of padding
ssl_tls.c : 1560 - <= encrypt buf
ssl_tls.c : 2838 - output record: msgtype = 23, version = [3:3], msglen = 141
ssl_tls.c : 2416 - => flush output
ssl_tls.c : 2435 - message length: 146, out_left: 146
ssl_tls.c : 2441 - ssl->f_send() returned 146 (-0xffffff6e)
ssl_tls.c : 2460 - <= flush output
ssl_tls.c : 2850 - <= write record
ssl_tls.c : 6883 - <= write
ssl_tls.c : 6514 - => read
ssl_tls.c : 3728 - => read record
ssl_tls.c : 2208 - => fetch input
ssl_tls.c : 2366 - in_left: 0, nb_want: 5
ssl_tls.c : 2390 - in_left: 0, nb_want: 5
ssl_tls.c : 2391 - ssl->f_recv(_timeout)() returned 5 (-0xfffffffb)
ssl_tls.c : 2403 - <= fetch input
ssl_tls.c : 3488 - input record: msgtype = 21, version = [3:3], msglen = 26
ssl_tls.c : 2208 - => fetch input
ssl_tls.c : 2366 - in_left: 5, nb_want: 31
ssl_tls.c : 2390 - in_left: 5, nb_want: 31
ssl_tls.c : 2391 - ssl->f_recv(_timeout)() returned 26 (-0xffffffe6)
ssl_tls.c : 2403 - <= fetch input
ssl_tls.c : 1576 - => decrypt buf
ssl_tls.c : 2051 - <= decrypt buf
ssl_tls.c : 3961 - **got an alert message, type: [1:0]**
ssl_tls.c : 3976 - **is a close notify message**

正如我所读,“收到警报消息,键入:[1:0]”表示 AWS 关闭了连接,但这是为什么以及它的含义是什么?

我在 Wireshark 中看到一个“应用程序数据”条目。所以我可能在应用程序数据事务处理过程中收到 AWS Close 警报。

我还看到了一条评论,如“这意味着证书对 AWS 来说不够宽松”,但我对 Linux 和嵌入式端使用相同的证书。

任何想法。我该如何调试它?

最佳答案

我建议对您的政策(以及证书以及它们与您的东西之间的链接)进行三次检查。我遇到了同样的问题,解决方案是更改政策:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iot :*",
"Resource": "*"
}
]
}

到:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iot:*",
"Resource": "*"
}
]
}

即:“Action”字符串丢失了空格字符。

关于amazon-web-services - 握手后 AWS IoT 关闭 mqtt 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45416569/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com