MQTT SSL verbinding met micropython en een ESP32-S3

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • leecher
  • Registratie: December 2004
  • Laatst online: 15-09 17:13
Ik probeer een ESP32-S3+micropython te laten verbinden met een versleutelde verbinding. Tot nu toe helaas zonder resultaat: Een verbinding komt nooit tot stand. Ik heb o.a. deze howto geprobeerd maar ergens gaat het nog steeds mis (OSError: -202)

Ik probeer in principe te verbinden met mijn eigen broker, maar om uit te sluiten dat het daar fout gaat verbind ik met test.mosquitto.org op poort 8884. Ik heb een server certificate, private certificate en een private key. Als ik de laatste twee toevoeg in een 'normale' client (MQTT Explorer) dan werkt dit zonder problemen.

Hier de relevante snippets:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
from mqtt.robust import MQTTClient

def read_text_file(fname):
    print('Reading file', fname)
    with open(fname) as f:
        output = f.read()
    return output

ssl_params = {"cert":read_text_file("/clientcert.crt"), "key":read_text_file("/privatekey.key")}

mqttclient = MQTTClient(server=mqtt_server, port=mqtt_port, client_id=client_id, ssl=True, ssl_params=ssl_params, keepalive=20)

mqttclient.connect()


clientcert.crt en privatekey.key staan op de aangegeven plaats. De rest van de code is het uitlezen van een temperatuur sensor, verbinden met wifi en wat variabelen (mqtt_ enzovoorts). Zonder SSL werkt MQTT verder prima (met en zonder user/password login). Ik heb het vermoeden dat het fout gaat in ssl_params maar ik kom er niet uit waar dat in zit. Iemand een idee?

Ik heb een betaalde 2025 WinRAR licentie (geen leugen)


Acties:
  • 0 Henk 'm!

  • Wolf87
  • Registratie: Juli 2004
  • Laatst online: 08:18
Kan het eens proberen met ‘certfile’ en ‘keyfile’ in de ssl_params. Ik denk dat ‘cert’ en ‘key’ niet correct zijn.

Acties:
  • 0 Henk 'm!

  • leecher
  • Registratie: December 2004
  • Laatst online: 15-09 17:13
Ik heb het aangepast maar helaas, nog steeds dezelfde error.

Ik heb een betaalde 2025 WinRAR licentie (geen leugen)


  • tafkaw
  • Registratie: December 2002
  • Laatst online: 22-09 15:18
Dump eens ssl_params naar je console. Staat dan alles goed? Want het lijkt me dat je er nu dat print statement voor drukt waardoor ie je ssl cert niet herkend.

  • OnTracK
  • Registratie: Oktober 2002
  • Nu online
Je moet volgens mij ook nog instellen welk certificaat van je broker daadwerkelijk vertrouwt voordat je verbinding zal worden opgezet.
Zie "The server" 8884 op https://test.mosquitto.org/ (mosquitto.org.crt (PEM format), or mosquitto.org.der (DER format)). Dat is geen publiek vertrouwd certificaat.

Dat zou denk ik de param "ca_certs" zijn als extra ssl_param

[ Voor 9% gewijzigd door OnTracK op 30-09-2023 19:29 ]

Not everybody wins, and certainly not everybody wins all the time.
But once you get into your boat, push off and tie into your shoes.
Then you have indeed won far more than those who have never tried.