我正在构建真实的简单的IoT项目,我被困在nodeMCU的TLS问题上。我的Raspberry pi上有MQTT broker,所有证书都被正确插入(在同一个raspberry上的Paho客户端或远程PC上的Mqtt.fx客户端都可以正常工作),但是当我试图从ESP8266与nodeMCU连接时,我得到的是SSL握手错误(是的,我对所有提到的客户端都使用相同的证书文件)。我的ESP8266代码如下所示:
tls.cert.verify([[
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
]])
m:connect(config.HOST, 8883, 1, function(con)
print("Connected to MQTT broker")
register_myself()
-- And then pings each 1000 milliseconds
tmr.stop(6)
tmr.alarm(6, 1000, 1, send_ping)
end, handle_mqtt_error)我从m:(mqtt.CONN_FAIL_SERVER_NOT_FOUND)获得了错误代码-5,但是当我使用Wireshark分析数据包时,TLS握手如下所示:
在ESPlorer控制台中也有这样一行:E:M 544,我不知道这意味着什么。
发布于 2018-07-30 13:57:33
如果有人做了同样的事情,我的问题实际上是由于我的项目的其他部分内存使用率过高造成的,我在应用层上使用AES加密,没有它,一切都工作得很好。
发布于 2018-07-16 10:28:25
ESP8266太慢,无法可靠地使用证书。您应该升级到ESP32或对它提供更多支持的东西。
请参阅下面的第3.2节,引用ESP8266的SSL握手失败。这看起来和你的问题很相似。你必须要有创造性和精益,才能使它可靠地工作,这就降低了你所做的一切的价值。所以,这可能不值得这么麻烦。
另外,尝试TLS 1.1看看它能做什么。它可能不支持TLS 1.2。
https://stackoverflow.com/questions/51357327
复制相似问题