乐鑫技术交流
直播中

jjll652

9年用户 1462经验值
私信 关注
[问答]

ESP8266安全连接(SSL)时,会出现重连回调错误的原因?

我使用的是乐鑫「ESP8266 NONOS SDK 2.2.0」的正式版。
(https://github.com/espressif/esp8266_nonos_sdk/releases)

但是,由于安全 (SSL) 通信中的错误,这是一个困难的情况。
我想要很多帮助和建议。

【背景】
参考现有IoT_Demo的源代码,
You can see that it uses "libssl.a" in the SSL communication.
但是,此库似乎不支持 SHA-2 算法。
So I try to use mbedlib'  "libmbedlib.a" link.

【问题】
■How to use "libmbedlib.a"
1)I already have "libmbedlib.a" in the SDK's lib (ESP8266_NONOS_SDK-2.2.0  lib) folder.
   Can I just change "-lssl" → "-lmbedtls" in the user application's makefile?

2)Especially, there was a difference between the header file(espconn.h)  of "ESP8266_NONOS_SDK-2.2.0third_partyincludelwipapp" and the header file(espconn.h)  of "ESP8266_NONOS_SDK - 2.2.0  include", is there a problem?

■关于错误以及如何解决它们
3) In the makefile, change "-lssl" → "-lmbedtls",
When executing 「espconn_secure_connect」, a "-114" error occurs from the CallBack function registered in espconn_regist_reconcb' function.
这个错误(-114)是什么意思?
你怎么能解决它?

请帮帮我!
                                                                                                                                                                                                                        
               

回帖(1)

张健

2024-7-9 16:06:16
在使用ESP8266进行安全连接(SSL)时,可能会遇到重连回调错误。这可能是由于多种原因导致的,例如库不支持SHA-2算法。在这种情况下,您可以尝试使用mbedTLS库(libmbedlib.a)来解决问题。以下是使用libmbedlib.a的步骤:

1. 确保您已经下载了ESP8266 NONOS SDK 2.2.0正式版:https://github.com/espressif/esp8266_nonos_sdk/releases

2. 下载mbedTLS库:您可以从mbedTLS的官方GitHub仓库下载最新版本的库:https://github.com/ARMmbed/mbedtls

3. 将mbedTLS库集成到ESP8266 NONOS SDK中:
   a. 将下载的mbedTLS库解压缩到ESP8266 NONOS SDK的根目录下。
   b. 将mbedtls文件夹重命名为mbedTLS。

4. 修改Makefile以使用mbedTLS库:
   a. 打开ESP8266 NONOS SDK的根目录下的Makefile文件。
   b. 在Makefile中找到`LIB_PATH`变量,确保它包含了mbedTLS库的路径,例如:
      ```
      LIB_PATH = ./lib ./libmbedtls $(FW_LIB_PATH) $(LWIP_LIB_PATH) $(NET80211_LIB_PATH)
      ```
   c. 在Makefile中找到`APP_LIB_SRC`变量,添加mbedTLS库的源文件路径,例如:
      ```
      APP_LIB_SRC = $(addprefix $(SDK_LIB_DIR)/,mbedtls/library/libmbedtls.a)
      ```

5. 修改您的代码以使用mbedTLS库:
   a. 包含mbedTLS库的头文件:
      ```c
      #include "mbedtls/platform.h"
      #include "mbedtls/net_sockets.h"
      #include "mbedtls/ssl.h"
      #include "mbedtls/entropy.h"
      #include "mbedtls/ctr_drbg.h"
      #include "mbedtls/error.h"
      ```
   b. 初始化mbedTLS库并设置SSL连接。您可以在mbedTLS的官方文档中找到示例代码:https://tls.mbed.org/kb/how-to/upgrade-to-mbedtls-3

6. 编译和烧录您的代码到ESP8266模块。

7. 测试您的设备以确保SSL连接正常工作。

通过以上步骤,您应该可以使用mbedTLS库(libmbedlib.a)来解决ESP8266在安全连接(SSL)时遇到的重连回调错误。如果您在操作过程中遇到任何问题,请随时提问,我会尽力提供帮助。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分