ali-iotkit+mbedtls无法连接阿里云平台

发表在 Network2020-3-26 15:05 [复制链接] 2 61

6金钱
1:开发环境:硬件:正点原子 STM32 F103 战舰V3开发板+EC20 4G模块
+ G, [$ X- R: t3 W6 f软件:RT-Thread Studio+at_device(latest)+Ali-iotkit(latest)+mbedtls(latest)% g6 O0 l5 Z/ _- B, \" Y5 ?  ^
2:问题描述:! y% Y3 b4 _/ ^& X
首先网络是通的(图1),Ali-iotkit(latest)选择MQTT直连,配置表里有FEATURE_SUPPORT_TLS选项,这个是来使能TLS加密通讯的,如果关闭这个则可以正常与阿里云物联平台通讯,但是需要用到OTA功能,所以需要把这个打开,(图2)打开TLS后再连接阿里云物联平台就不行了(图3)
# E  n# S6 H, L+ L, \: ^; B 图1.png 2 a6 ?% r. \- \
(图1)
6 r3 |* t& c2 }( N- s- o 图2.png
/ y8 W3 b* u0 {$ W. S" g(图2)' |7 N* X$ F- S5 `+ i; Y! C
图3.png : b2 A, V) L" {$ B
(图3)! J. O( }3 h. L
3:当前所作的尝试9 b4 I& W+ ?4 N4 l1 b. g( _$ b% V# H
首先,既然开启TLS出现问题,那问题就应该是在Mbedtls上,我在论坛里查找相关内容,首先把最大数据帧长度调整到了8192(图4),然后是证书的问题,我参考官网文档以及阿里云的文档(图5)把阿里云的根证书放在了D:\rtt_studio\RT-ThreadStudio\workspace\EC20\packages\mbedtls-latest\certs 用户根目录下(图6),然后在mebdtls的配置里选择了使用用户证书,但是这一切仍旧不奏效, 还是无法连接,错误码仍如图3一样是0x7280有没有做过相关尝试的小伙伴指点一下。0 R. h/ n8 G0 {' U
图4.png
9 E& c$ n8 J+ j  ?9 B. l9 i(图4), g: w' o. N- u, O, l
图5.png 2 m, s; ]" N  y
(图5)! V6 N" D+ x6 `" F
  o& q& c( M/ _; o4 G: w% H# @
图6.png & f' I; a/ J- R! e/ x2 @
(图6)
$ u8 `4 @$ G6 z. \

使用道具 举报 显示全部楼层 回复
最新评论 | 正序浏览
显示全部楼层 |楼层直达:
发表于 2020-3-26 23:01:20 | 显示全部楼层
继续测试,发现坑越来越多了
: D5 O) M8 ~/ D% v6 W8 i1:开发环境:8 s% N* h. I: ^4 k7 ~2 b
硬件:野火F429 挑战者开发板+ESP8266(4G模块在公司,没有带回家)
- A& X2 \8 ~/ |1 N软件环境1:RT-Thread Studio+at_device(latest)+Ali-iotkit(latest)+mbedtls(latest)7 o* E8 ?0 W; _+ l& n4 [# P4 W
软件环境2:RT-Thread 4.0.1+at_device(1.6.0)+Ali-iotkit(2.0.6)+mbedtls(2.0.6): {) \1 M- |/ U, S% S3 A/ d: k; l+ a
2:测试结果% k8 A: W# ~3 K9 U; t! N+ s$ f# ]  a
在软件环境1下:一切正常,但是打开mbedtls的log功能后出现了上面的0x7280错误1 j5 c4 T$ n4 L2 a5 |7 h
在软件环境2下:一切正常,也可以连接阿里云物联平台并上传信息 wifi-ok.png
9 B4 t3 I" o) A3:新的疑问% k! P5 c+ z5 n! ?3 G
(1):为什么同样的配置使用WIFI模块可以通过TLS连接到阿里云,EC20不行,按理说网络都是通的
' c7 U8 i$ Q' K; u; F" `(2):为什么打开mbedtls的log功能会出现跟图三一样的0x7280错误,关闭log显示就不行; Y) F$ t. l/ }0 p' @' \$ }; I( Y' S
4:接下来要做的( J, N- o/ i6 E" O3 b
(1):使用F429来连接EC20进行进一步测试
! _2 a7 p5 B# Q" w(2):更换mbedtls的软件版本来确定打开log显示就出现错误的问题所在
* u  C  {' n; R; h3 b& y8 e
使用道具 举报 回复
发表于 2020-3-27 10:24:35 | 显示全部楼层
本帖最后由 coulson 于 2020-3-27 10:29 编辑 * Q. j$ o" N3 p+ P

3 ^, Q' h8 @" A6 x继续进行测试,好像接近问题的本质了
3 X6 |; A! P, R( T9 g$ W( H9 u1:开发环境:$ I/ o( s6 G  A' }$ Y8 z  }2 |
硬件:野火F429 挑战者开发板+EC20模组
+ Y# R' h( A* q! f/ K! ^软件环境:RT-Thread Studio+at_device(latest)+Ali-iotkit(latest)+mbedtls(latest), J8 p8 `$ w) D9 y* S  u2 w' \
2:测试结果:
: {/ w/ ~' i& p& A6 ]4 r' s: P(1)在当前软件环境下,开启TLS加密传输,可以正常连接到阿里云。. y+ [7 v& g, r0 j/ _- z
(2)开启TLS加密后,再开启mbedtls的log打印功能还是会出现连接失败,已将log上传,有感兴趣的大佬帮忙分析一下
+ D6 q) R) n3 ^% m: s: x0 L7 S  J3:个人结论:(1)使用F103+TLS+ali-iotkit连接阿里云失败与证书没有关系 ,问题应该是因为F103的内存太小,导致加密过程失败,而且在F103上无法开启mbedtls的log打印功能,所以之前一直在怀疑是证书的问题,搞错了方向。7 j- x) D* }* a7 E
(2)使用F103+TLS+ali-iotkit连接阿里云失败与软件包没有太大关系,因为使用 RT-Thread 4.0.1+at_device(1.6.0)+Ali-iotkit(2.0.6)+mbedtls(2.0.6)也是可以的。# s4 `4 @, \9 v7 l% h, d$ C4 t5 V7 G
4:接下来要做的:
3 J! q9 U0 v5 [1 u  w2 r(1)当前测试环境下在mbedtls(latest)里是没有选择任何证书的,尝试替换成阿里云的证书
1 T. E+ Z  J8 U; c' R- R(2)找出mbedtls(latest)打开log打印功能导致TLS连接失败的原因
" P4 I* N/ |! V' J; d(3)参考官方文档对mbedtls资源占用进行优化/ H3 Z6 U; W+ |8 T$ g9 R, {4 m. E
(4)研究拓展SRAM,以在F103上使用TLS
9 s/ n/ i- \$ D) y COM32_2020-03-27_10-04-50.log (708.94 KB, 下载次数: 8)
使用道具 举报 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  1. 24 主题
  2. 390 帖子
  3. 390 积分

Ta的主页 发消息

Archiver|手机版|小黑屋|RT-Thread开发者社区 ( 沪ICP备13014002号-1

有害信息举报电话:021-31165890 手机:18930558079

© 2006-2019 上海睿赛德电子科技有限公司

Powered by RT-Thread

快速回复 返回顶部 返回列表