乐鑫技术交流
直播中

席毖庸

8年用户 1055经验值
擅长:596874
私信 关注
[问答]

https调用espconn_secure_connect时就崩溃了,为什么?

大家好,有用过https的吗?调用espconn_secure_connect 时就崩溃了,这是为什么???

QBIQ:qbiq_start_dns
QBIQ: now() = 1541378203, secure buff size = 8192
QBIQ:qbiq_dns_found 64.34.221.164
QBIQ:qbiq_dns_name2 harvest.ubiqweus.com
QBIQ: connect to SSL 443
QBIQ: connection ok
TLS.ca_x509.cer 3d5
the file is a PEM file.
client handshake start.
distinguished names: [RapidSSL RSA CA 2018], [harvest.ubiqweus.com]
before 1541030400, tv_sec 1541378203, after 1572566400
distinguished names: [RapidSSL RSA CA 2018], [RapidSSL RSA CA 2018]
distinguished names: [DigiCert Inc], [DigiCert Inc]
distinguished names: [www.digicert.com], [www.digicert.com]
E:M 528
Fatal exception 29(StoreProhibitedCause):
epc1=0x4000e1b2, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x00000000
ÿ
ets Jan  8 2013,rst cause:2, boot mode:(3,6)

load 0x40100000, len 2408, room 16
tail 8
chksum 0xe5
load 0x3ffe8000, len 776, room 0
tail 8
chksum 0x84
load 0x3ffe8310, len 632, room 0
tail 8
chksum 0xd8
csum 0xd8


Also is it possible to call system_upgrade_start() over https? I am using port 443 but found no SSL/TLS handshake - it was just sending plain http request.

另外,system_upgrade_start可以使用https吗?我设置了端口为443可是看到未经SSL/TLS握手,设备就直接发http请求了。
                                                                                                                                                         

回帖(1)

klysa

2024-7-17 11:31:39
从您提供的信息来看,崩溃的原因可能与以下几个方面有关:

1. **内存问题**:在使用ESP8266或ESP32进行HTTPS通信时,需要确保设备有足够的内存来处理SSL/TLS握手和数据传输。如果内存不足,设备可能会在调用`espconn_secure_connect`时崩溃。请检查您的设备内存使用情况,并确保在连接之前释放不必要的内存。

2. **证书问题**:确保您使用的是正确的证书文件(`TLS.ca_x509.cer`)。证书文件应该是PEM格式,并且需要包含证书链中的所有证书。如果证书文件损坏或不完整,可能会导致连接失败。

3. **域名解析问题**:从您的日志中可以看到,域名`harvest.ubiqweus.com`已经解析为IP地址`64.34.221.164`。请确保这个IP地址是正确的,并且您的设备可以访问该IP地址。

4. **网络问题**:请检查您的设备是否连接到了正确的网络,并且网络连接稳定。不稳定的网络连接可能会导致连接失败。

5. **固件/库问题**:确保您使用的是最新版本的ESP8266或ESP32固件,以及与之兼容的SSL/TLS库。过时的固件或库可能会导致连接问题。

6. **代码问题**:检查您的代码,确保在调用`espconn_secure_connect`之前,已经正确初始化了ESP8266或ESP32设备,并且设置了正确的回调函数。

为了解决这个问题,您可以尝试以下步骤:

1. 检查内存使用情况,并在连接之前释放不必要的内存。
2. 确保证书文件是正确的,并且包含证书链中的所有证书。
3. 检查网络连接,确保设备可以访问目标服务器的IP地址。
4. 更新固件和SSL/TLS库到最新版本。
5. 检查代码,确保设备初始化和回调函数设置正确。

希望这些建议能帮助您解决问题。如果问题仍然存在,请提供更多详细信息,以便我们能够更好地帮助您。
举报

更多回帖

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