SSL connect attempt failed error. Kein 'Server Hello' vom nginx (Nextcloud)

Begonnen von jack_uf, 30 Juli 2025, 19:36:42

Vorheriges Thema - Nächstes Thema

jack_uf

Ich habe meine Owncloud auf Nextcloud umgestellt. Die Nextcloud hat als WebServer einen nginx und läuft auf einem Raspberry pi mit Bookworm.

Wenn ich versuch mit dem Calendar Modul Daten zu holen, dann funktioniert dies nicht und im Log sehe ich diese Meldung:
Calendar KalenderAny: retrieval failed with error message  SSL connect attempt failed error:0A000126:SSL routines::unexpected eof while reading
Auf dem Server habe ich ein selbsterstelltes Zertifikat. Damit dies auf der FHEM Seit nicht zu Problemen führt habe ich Calendar Modul das Attribut SSLVerify auf 0 gestellt.

Um das Problem bezüglich der Fehlermeldung einzugrenzen, habe ich folgendes versucht. Ich habe auf dem Rechner von FHEM die gleiche URL wie, die aus dem FHEM mit curl abgerufen. Dieser Versuch hat Daten vom Nextcloud Server geliefert. Aus dem Schlisse ich dass die Netzwerkverbindung schon einmal funktionieren sollte.

Ich habe mir dann die Kommunikation mit WireShark angeschaut (Achtung ich habe das Tool heute zum ersten mal benutzt).
Wenn ich mir die Kommunikation zwischen FHEM und dem Nextcloud anschaue, dann sehe ich da ein 'Client Hello', jedoch kein 'Server Hello'. Wenn ich mir den Aufruf curl -> Nextcloud im WireShark anschaue, dann folgt auf das 'Client Hello' ein 'Server Hello'. Da ich kein Fachmann bin fällt es mir schwer herauszufinden wo das Problem liegt. Folgendes habe ich aber noch beobachtet. Bei der Kommunikation FHEM -> Nextcloud steht im Client Hello als Version TLS 1.0 egal was ich in Global unter sslVersion eingetragen habe. Das Attribut sslVersion hat aber eine Wirkung auf die 'supported_versions' die man in WireShark sieht. Aktuell habe ich da übrigens TLSv13:!TLSv12:!SSLv3 drin. Wenn ich mir die Version vom Client Hello vom curl Aufruf anschaue, dann steht da TLSv1.3 drin. Ich habe mir dann gedacht, dass mein Nextcloud (nginx) keine Freude am Client Hello in der Version TLS 1.0 hat. Ich habe dann zu Versuchszwecken in nginx zusätzlich noch die Version 1.0 hinzugefügt. Jedoch hat dies nichts gebracht.

Kann mir da vielleicht jemand auf die Sprünge helfen und mir sagen was ich möglicherweise in FHEM falsch konfiguriert habe?

Vielen Dank.

passibe

Erstmal das Attribut sslVersion löschen, das ist veraltet. Siehe die Diskussion hier: https://forum.fhem.de/index.php?topic=139843.msg1325842#msg1325842

Ansonsten zeig bitte mal den relevanten Auszug deiner nginx-Konfiguration, also mindestens mal den server-Block und, falls SSL irgendwo übergeordnet konfiguriert wird, die SSL-Konfiguration.

Übrigens, falls nicht bekannt, nextcloud stellt die Empfehlenswerte Config hier bereit (aber sind zwei unterschiedliche Versionen, je nach dem, ob als root oder im Unterverzeichnis): https://docs.nextcloud.com/server/latest/admin_manual/installation/nginx.html

Zeig bitte auch mal die Ausgabe voncurl -Iv <URL>.

Und was steht im nginx-(error)-Log, wenn FHEM den Aufruf macht? Notfalls bei nginx debug einstellen, dann müsste da auf jeden Fall eine einigermaßen aussagekräftige Fehlermeldung auftauchen.

Also:
1. sslVersion löschen
2. nginx-Config ggfs. auf die Empfehlung von nextcloud anpassen
3. nginx-Config posten
4. Was gibt: curl -Iv <URL>
5. Debug Log von nginx posten

jack_uf

Besten Dank für Deine schnelle Antwort.

Meine TODOs
1. sslVersion löschen
  -> ist gelöscht
2. nginx-Config ggfs. auf die Empfehlung von nextcloud anpassen
  -> ich habe die Bsp. Config übernommen ausser den Einstellungen für: server-name, ssl_certificate und ssl_certificat_key
3. nginx-Config posten
  -> hinfällig da gleich
4. Was gibt: curl -Iv <URL>
  Hier bekomme ich dies:
*   Trying 192.168.2.120:443...
* Connected to 192.168.2.120 (192.168.2.120) port 443 (#0)
* ALPN: offers h2,http/1.1
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
*  CAfile: /etc/ssl/certs/ca-certificates.crt
*  CApath: /etc/ssl/certs
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (OUT), TLS alert, unknown CA (560):
* SSL certificate problem: self-signed certificate
* Closing connection 0
curl: (60) SSL certificate problem: self-signed certificate
More details here: https://curl.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.

5. Debug Log von nginx posten
  -> Ich glaube das sind die Meldungen
2025/07/31 16:57:04 [debug] 13458#13458: *32 http check ssl handshake
2025/07/31 16:57:04 [debug] 13458#13458: *32 http recv(): 0
2025/07/31 16:57:04 [info] 13458#13458: *32 client closed connection while SSL handshaking, client: 192.168.2.100, server: 0.0.0.0:443
2025/07/31 16:57:04 [debug] 13458#13458: *32 close http connection: 16

Hast Du da noch eine Idee?

Besten Dank

betateilchen

Wie (auf welchen hostname) hast Du das self-signed certificate erstellt? Kann der hostname irgendwie zu einer ip (und umgekehrt) aufgelöst werden?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

jack_uf

Sorry. Ich habe das Problem soeben gefunden. Meine Fritzbox hat da zwischen den Subnetzen etwas zu viel gefiltert. Im Detail habe ich noch nicht verstanden warum ich nicht eine komplette Blockierung zwischen den Rechnern sehe sondern ein Teil der Kommunikation funktioniert und ein Teil nicht. Der Zugriff von FHEM auf den Nextcloud Kalender funktioniert jetzt aber wieder.
Danke für Eure Hilfe.