ESP32 und MQTT mit SSL/TLS, Passwort und Client-Zertifikat

OP #7503112
Lesenswert?

Hallo!

Ich versuche ein Lilygo-T-SIM7000G Entwicklungsboard mit einem MQTT-Server (Port 8883 per SSL/TLS, Authentifizierung mit username/password, client-certificate benötigt) per GSM zu verbinden.

(Hier der Link zum Board: https://www.amazon.de/dp/B099RQ7BSR?ref=nb_sb_ss_w_as-reorder-t1_k0_1_6&amp=&crid=1SCEQBF2W1Q7A&amp=&sprefix=lilygo )

Ich benutze zum Programmieren Visual Studio Code mit PlatformIO mit Arduino-Framework.

Habe auch schon diese recht aktuell anmutende Bibliothek gefunden: SSLClient https://github.com/govorox/SSLClient

Es gibt auch ein Beispielcode für genau meinen Anwendungsfall und genau mein Board: https://github.com/govorox/SSLClient/tree/master/examples/Esp32/mqtt_secure_gsm_SIM7000

Habe dieses Beispiel genommen, die entsprechenden Variablen angepasst (SIM-PIN, apn, user, password, Zertifikate, etc.) und auf den ESP32 des Lilygo-Boards aufgeflasht.

Am seriellen Monitor konnte ich beobachten, dass das Board sich mit dem Mobilfunknetz (auch Internet, es zeigt die IP-Adresse an) verbindet und dann jedoch folgende Fehlermeldung kommt:

1
Attempting MQTT connection...[ 18962][E][ssl_client.cpp:41] _handle_error(): [start_ssl_client():347]: (-29696) SSL - No RNG was provided to the SSL module
2
[ 18963][E][SSLClient.cpp:133] connect(): start_ssl_client: -29696
3

4
assert failed: heap_caps_free heap_caps.c:360 (heap != NULL && "free() target pointer is outside heap areas")
5

6
Backtrace: <anonymized>
7

8
ELF file SHA256: <anonymized>
9

10
Rebooting...

Ich habe bereits gegoogelt, dass RNG Random Number Generator bedeutet. Ich weiß auch, dass man das braucht, um sichere Schlüssel generieren zu können und dass man dafür einen nicht angeschlossenen analogen Pin nehmen kann. Aber ich weiß nicht, wie ich den Code anpassen sollte, um dies zu erreichen.

Ich habe auch diese ältere Bibliothek gefunden, der noch die Möglichkeit bietet, so einen Analog-Pin festzulegen: https://github.com/OPEnSLab-OSU/SSLClient

Die selbe Funktion in der aktuelleren Bibliothek hat diese Funktion nicht mehr.

Die ältere Bibliothek wurde aber seit 3 Jahren nicht mehr angegriffen und es steht auch "failing" bei der Anzeige, die normalerweise grün sein sollte (In der obersten Zeile von Readme.md).

Kennt sich jemand mit diesem Problem aus? Habt ihr Erfahrung mit diesem Problem? Könnt ihr vielleicht eine Lösung für dieses Problem empfehlen? Oder eine andere Bibliothek?

Danke im Voraus!

Gruß, elpat

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren