首页 > 解决方案 > 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,我真的不知道那是什么意思。

标签: sslmqtttls1.2esp8266nodemcu

解决方案


万一有人遇到同样的事情,我的问题实际上是由项目其他部分的高内存使用引起的,我在应用层使用 AES 进行加密,没有它一切都很好。


推荐阅读