Amazon web services AWS IoT在握手后关闭mqtt连接

Amazon web services AWS IoT在握手后关闭mqtt连接,amazon-web-services,ssl,aws-iot,Amazon Web Services,Ssl,Aws Iot,我有一个使用AWS SDK连接AWS物联网的实现。它在Linux上运行良好。 我正在尝试将其移植到基于FreeRTOS的嵌入式系统。 mbedtls与ssl包装一起在AWS SDK中使用 在mbedtls端有一些小的修改(我提供了从sntp到mbedtls的时间) 当我启用mbedtls调试时,我看到一切正常,握手完成。但在握手之后,我收到来自AWS SDK的连接关闭消息 ssl_cli.c : 3303 - client state: MBEDTLS_SSL_FLUSH_BUFFERS (14

我有一个使用AWS SDK连接AWS物联网的实现。它在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**
ssl\u cli.c:3303-客户端状态:MBEDTLS\u ssl\u FLUSH\u缓冲区(14)
ssl_cli.c:3303-客户端状态:MBEDTLS_ssl_握手_WRAPUP(15)
ssl_tls.c:5024-加密buf
ssl_tls.c:1400-加密前:msglen=125,包括0字节的填充
ssl_tls.c:1560-刷新输出
ssl_tls.c:2435-消息长度:146,左外:146
ssl_tls.c:2441-ssl->f_send()返回146(-0xffffff6e)
ssl_tls.c:2460-获取输入
ssl_tls.c:2366-左中:0,注意:5
ssl_tls.c:2390-左中:0,注意:5
ssl_tls.c:2391-ssl->f_recv(_timeout)()返回5(-0xfffffffb)
ssl_tls.c:2403-获取输入
ssl_tls.c:2366-左中:5,注意:31
ssl_tls.c:2390-左内:5,注意:31
ssl_tls.c:2391-ssl->f_recv(_timeout)()返回26(-0xffffffe6)
ssl_tls.c:2403-解密buf

ssl_tls.c:2051-我建议对您的策略(以及证书以及它们与您的东西之间的链接)进行三次检查。 我也有同样的问题,解决方案是将政策从:

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


i、 e.“Action”字符串已丢失空格字符。

我建议您重新检查您的策略(以及证书以及它们与您的物品之间的链接)。 我也有同样的问题,解决方案是将政策从:

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

i、 e.“Action”字符串已丢失空格字符