ssl - nodeMCU TLS证书错误
问题描述
我正在构建非常简单的物联网项目,但我陷入了 nodeMCU TLS 问题。我的 Raspberry pi 上有 MQTT 代理,所有证书都已正确插入(在同一个覆盆子上使用 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:connect 收到错误代码-5 (mqtt.CONN_FAIL_SERVER_NOT_FOUND),但是当我使用 Wireshark 分析数据包时,TLS 握手看起来像这样:
- 客户您好
- 服务器你好
- 证书,服务器 Hello Done
- TLSv1.2 记录层:警报(级别:致命,描述:未知 CA)
同样在 ESPlorer 控制台中有这样一行:E:M 544,我真的不知道那是什么意思。
解决方案
万一有人遇到同样的事情,我的问题实际上是由项目其他部分的高内存使用引起的,我在应用层使用 AES 进行加密,没有它一切都很好。