so, ich hab das jetzt exemplarisch einmal komplett durchgespielt (von Anfang an)
CA File erzeugen
openssl genrsa -des3 -out ca.key 4096
openssl req -new -x509 -days 7500 -key ca.key -out ca.crt
Server key erzeugen ( für Mosquitto)
openssl genrsa -out server.key 4096
Zertifikatsanforderung für den Mosquitto Server erzeugen
openssl req -new -out server.csr -key server.key
Anforderung in Zertifikat umwandeln und mit dem CA Zertifikat singnieren
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 4096
im Mosquitto einen passenden Listener anlegen, und die Dateien (ca.crt, server.crt und server.key) entsprechend hinterlegen.
listener 8883
cafile /etc/mosquitto/certs/ca.crt
certfile /etc/mosquitto/certs/server.crt
keyfile /etc/mosquitto/certs/server.key
Im Shelly das ca.crt über das Webformular hochladen.
das sieht nach Upload bei mir so aus:
Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.
MQTT auf User-TLS einstellen und auf den passenden Port 8883 konfigurieren.
Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.
Shelly restarten, danach hab ich im subscribe auf # folgende Meldungen:
shellyplusi4-083af2010158/online true
shellyplusi4-083af2010158/status/mqtt {"connected":true}
shellyplusi4-083af2010158/status/cloud {"connected":true}
shellyplusi4-083af2010158/status/sys {"mac":"083AF2010158","restart_required":false,"time":"13:59","unixtime":1678625991,"uptime":12,"ram_size":248400,"ram_free":96076,"fs_size":458752,"fs_free":49152,"cfg_rev":64,"kvs_rev":6,"schedule_rev":0,"webhook_rev":0,"available_updates":{"stable":{"version":"0.14.1"},"test":{"version":"0.99.99-dev54754"}}}
im mosquitto.log
1678625982: New connection from 192.168.178.84:49371 on port 8883.
1678625986: New client connected from 192.168.178.84:49371 as shellyplusi4-083af2010158 (p2, c1, k60, u'admin').
Hoffe das hilft dem ein oder anderen.