乐鑫技术交流
直播中

李凤津

8年用户 1063经验值
私信 关注
[问答]

ESP8266 SSL服务器在几秒钟后断开连接是怎么回事?

我在ESP8266设备上遇到了一个与SSL服务器相关的问题。(ESP8266_NONOS_SDK-2.1.0)
我创建了一个自我认证的证书(当然,是私钥)。我按照以下代码启动了SSL服务器。

    espconn_secure_set_default_certificate (default_certificate, default_certificate_len);
    espconn_secure_set_default_private_key (default_private_key, default_private_key_len);
    espconn_secure_accept (&esp_conn);


来自 Android 设备或 PC 的连接似乎没问题。但是,几秒钟后,我的ESP8266设备将自动断开这些连接。

服务器握手开始。
服务器握手OK!
[Callback] Client 172.16.1.126:51689 disconnect


在SDK环境中执行命令时,我得到了相同的结果:

openssl s_client -connect 172.16.1.164:11830 -state -debug


部分输出为

SSL 会话:
    Protocol  : TLSv1.1
    Cipher    : AES256-SHA
    Session-ID: D2A7812E5CCF18A24E90C1619BBC677BD1870469A84BACADF7ABC1039384CE71
    Session-ID-ctx:
    Master-Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1508323128
    Timeout   : 300 (sec)
    Verify return code: 21 (unable to verify the first certificate)
---
读取:errno=0
SSL3 警报写入:警告:关闭通知
read from 0x9f4d250 [0x9f52a83] (5 bytes => 0 (0x0))
write to 0x9f4d250 [0x9f56fd3] (53 bytes => 53 (0x35))
0000 - 15 03 02 00 30 42 a6 7a-8b 14 b3 e0 5f 2b 4d 56   ....0B.z...._+MV
0010 - 1b 29 77 9f d7 80 4e cf-07 fd 29 17 69 c6 bf 6c   .)w...N...).i..l
0020 - f7 ed 74 0c 9a 66 99 f2-d6 73 ee e6 71 13 9f c4   ..t..f...s..q...
0030 - c8 93 ac f1 32                                    ....2


回帖(1)

艾玛

2024-7-17 11:33:32
要解决ESP8266 SSL服务器在几秒钟后断开连接的问题,我们可以按照以下步骤进行排查和解决:

1. **检查证书和私钥**:首先,确保您使用的证书和私钥是正确的。您可以通过在PC上使用浏览器尝试连接到ESP8266 SSL服务器来验证证书的有效性。如果证书有问题,您可能需要重新生成证书和私钥。

2. **检查连接数限制**:ESP8266的内存和资源有限,因此可能无法同时处理多个连接。请确保您的代码没有尝试创建过多的连接。如果需要处理多个连接,可以考虑使用非阻塞I/O或增加ESP8266的内存。

3. **检查超时设置**:ESP8266可能会在一定时间内自动断开空闲连接。您可以检查ESP8266的超时设置,确保它们不是导致连接断开的原因。如果需要,可以调整超时设置以保持连接更长时间。

4. **检查网络稳定性**:网络不稳定可能导致连接断开。请确保您的ESP8266设备连接到稳定的Wi-Fi网络。您还可以检查设备的电源供应,确保其稳定。

5. **检查代码逻辑**:检查您的代码逻辑,确保在连接建立后没有意外地关闭连接。例如,检查是否有任何错误处理代码在遇到错误时关闭连接。

6. **调试和日志记录**:在您的代码中添加调试和日志记录语句,以便在连接断开时获取更多信息。这可以帮助您确定问题的根本原因。

7. **更新ESP8266固件**:确保您的ESP8266设备运行的是最新版本的固件。有时,固件更新可能包含修复与SSL连接相关的问题。

8. **测试不同设备和平台**:尝试使用不同的设备(如不同的Android设备或PC)连接到ESP8266 SSL服务器,以确定问题是否与特定设备或平台有关。

通过以上步骤,您应该能够找到导致ESP8266 SSL服务器在几秒钟后断开连接的原因,并采取相应的措施解决问题。
举报

更多回帖

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