HttpUtils liefert SSL-error

Begonnen von timtom2000, 27 Februar 2023, 18:45:35

Vorheriges Thema - Nächstes Thema

timtom2000

Hallo,

HttpUtils liefert mir bei einer simplen Abfrage einer bestimmten Webside seit einiger Zeit einen SSL-error, Fehlermeldung s.u. (war nicht immer so, es lief mal). Andere Webseiten funktionieren, auch mit https.
Hat jemand evtl. einen Tipp, was da schief läuft, bzw. wie ich weiter debuggen kann? Mit der u.g. Fehlermeldung ergibt eine Recherche im Netz leider auch kein Ergebnis was weiterhilft.

Abfrage
{my $test = GetFileFromURL("https://www.soliscloud.com/")}

Error in Logfile (verbose 5)
2023.02.24 14:57:13 5: POST /fhem?cmd=%7Bmy%20%24test%20%3D%20GetFileFromURL(%22https%3A%2F%2Fwww.soliscloud.com%2F%22)%7D&XHR=1&fw_id=1677246980.12502 HTTP/1.1
Host: 192.168.178.1:8083
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/110.0
Accept: text/plain, */*; q=0.01
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
cache-control: no-cache
X-Requested-With: XMLHttpRequest
Origin: http://192.168.178.1:8083
Connection: keep-alive
Referer: http://192.168.178.1:8083/fhem/dashboard/MyDashboard
Content-Length: 0
2023.02.24 14:57:13 4: WEB_192.168.178.35_21603 POST /fhem?cmd=%7Bmy%20%24test%20%3D%20GetFileFromURL(%22https%3A%2F%2Fwww.soliscloud.com%2F%22)%7D&XHR=1&fw_id=1677246980.12502; BUFLEN:0
2023.02.24 14:57:13 5: Cmd: >{my $test = GetFileFromURL("https://www.soliscloud.com/")}<
2023.02.24 14:57:13 5: HttpUtils url=https://www.soliscloud.com/ Blocking via https
2023.02.24 14:57:13 4: CustomGetFileFromURL https://www.soliscloud.com/: Can't connect(2) to https://www.soliscloud.com:443:  SSL connect attempt failed error:14094410:lib(20):func(148):reason(1040)
2023.02.24 14:57:13 4: WEB: /fhem?cmd=%7Bmy%20%24test%20%3D%20GetFileFromURL(%22https%3A%2F%2Fwww.soliscloud.com%2F%22)%7D&XHR=1&fw_id=1677246980.12502 / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/ Cache-Control: no-cache, no-store, must-revalidate


Die o.g. Webside gibt per Netzwerkanalyse mittels Browser folgende Security-Infos aus, viell. hilft das weiter?
{
"Verbindung:": {
"Protokollversion:": "TLSv1.2",
"Cipher-Suite:": "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
"Key Exchange Group:": "x25519",
"Signatur-Schema:": "RSA-PSS-SHA256"
},
"Host www.soliscloud.com:": {
"HTTP Strict Transport Security:": "Deaktiviert",
"Public-Key-Pinning:": "Deaktiviert"
},
"Zertifikat:": {
"Ausgestellt für": {
"Allgemeiner Name (CN):": "*.soliscloud.com",
"Organisation (O):": "<Nicht verfügbar>",
"Organisationseinheit (OU):": "<Nicht verfügbar>"
},
"Ausgestellt von": {
"Allgemeiner Name (CN):": "RapidSSL TLS DV RSA Mixed SHA256 2020 CA-1",
"Organisation (O):": "DigiCert Inc",
"Organisationseinheit (OU):": "<Nicht verfügbar>"
},
"Gültigkeitsdauer": {
"Gültig ab:": "Wed, 30 Mar 2022 00:00:00 GMT",
"Gültig bis:": "Sun, 09 Apr 2023 23:59:59 GMT"
},
"Fingerabdrücke": {
"SHA-256-Fingerabdruck:": "A9:28:53:1F:A6:E0:DE:06:20:73:6C:AC:73:A8:1D:70:08:2B:A3:00:6B:58:20:0E:91:E0:BA:0C:97:C9:C6:E4",
"SHA1-Fingerabdruck:": "16:2C:38:76:99:8F:3B:E0:4A:59:A6:67:F8:53:A0:61:A1:A3:80:D6"
},
"Transparenz:": "<Nicht verfügbar>"
}
}
LWZ 304 (BJ 2017; FW 7.09); DHH o. Keller; 100m² Wohnfläche
FHEM auf USB-Stick an FritzBox 7560 (FW 7.29)

rudolfkoenig

Ich habe kein Problem mit der FHEM-Abfrage dieser Seite, und vermute, dass dein FHEM eine zu alte Version der openssl Bibliothek verwendet, was das geforderte Protokoll/Cipher-Suite/usw. nicht kennt. Wenn diese Hypothese stimmt, dann duerfte curl/wget auf dem FHEM-Rechner die gleichen Probleme haben.
Als naechstes tippe ich auf ein unpassend gesetztes "attr global sslVersion" Attribut: ich empfehle es zu loeschen.

Suchen im Internet nach der Fehlermeldung ist leicht frustrierend :)

Wie generiert man dieses Security-JSON?

timtom2000

Danke für die schnelle Antwort :)
Das Security-JSON habe ich direkt aus dem Debugger des Browsers, s. Screenshot im Anhang.

Ich verwende openssl-1.1.1l (zumindest kommt das bei Abfrage "openssl version", hätte ich direkt dazuschreiben können, sorry). Sollte ja eigentlich aktuell genug sein?! Das "attr global sslVersion" habe ich bisher gar nicht gesetzt.

wget funktioniert bei mir (nur) mit Option "--no-check-certificate", aber leider auch nicht bei der genannten Webside, Beispiele s. hier  :(
root@FB:/var/media/ftp# wget github.com
Connecting to github.com (140.82.121.3:80)
Connecting to github.com (140.82.121.3:443)
wget: error getting response: Connection reset by peer
root@FB:/var/media/ftp# wget --no-check-certificate github.com
Connecting to github.com (140.82.121.3:80)
Connecting to github.com (140.82.121.3:443)
saving to 'index.html'
index.html           100% |************************************************************************|  216k  0:00:00 ETA
'index.html' saved
root@FB:/var/media/ftp# wget --no-check-certificate soliscloud.com
Connecting to soliscloud.com (8.209.109.174:80)
Connecting to soliscloud.com (8.209.109.174:443)
wget: error getting response: Connection reset by peer


In der Tat frustrierend, da der Fehler sicherlich bei mir (bzw. im Zusammenspiel mit der Webside) liegt, mir aber Ansatzpunkte zum debuggen fehlen...
LWZ 304 (BJ 2017; FW 7.09); DHH o. Keller; 100m² Wohnfläche
FHEM auf USB-Stick an FritzBox 7560 (FW 7.29)

Wernieman

- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

rudolfkoenig

Wenn der Abruf nur mit "--no-check-certificate" funktioniert, dann findet wget keine gueltigen CAs im lokalen Filesystem.
HttpUtils_* deaktiviert die Client seitige Zertifikatspruefung, d.h. CAs sind fuer FHEM irrelevant.

Wenn wget auch mit "--no-check-certificate" nicht funktioniert, dann konnten die Beiden nicht auf einem gemeinsamen Verschluesselungsverfahren einigen.

Bei mir funktioniert wget soliscloud.com mit openssl 1.1.1f (aus 2020) und 3.0.8 (aus 2023).
Die zwei Connecting Zeilen sind wegen dem redirect: http lenkt auf https um.
Mein wget sagt mehr beim Verbindungsaufbau, u.a.:
Loaded CA certificate '/etc/ssl/certs/ca-certificates.crt'


Hypothese: auf deinem Rechner ist was kaputtgegangen, weil nichtmal die CAs vorhanden sind.

timtom2000

Ok, vielen Dank für die Hinweise!
Ich setze den Rechner mal komplett neu auf, das Image habe ich noch (schließlich ging es damit ja mal).
Alternativ könnte ggf. auch der Betreiber der Webside auf ein anderes Verschlüsselungsverfahren umgestellt haben?! Wobei TLSv1.2 ja nicht ungewöhnlich ist...inwiefern die "Cipher-Suite" da reinspielt weiß ich nicht, da muss ich mich erstmal einlesen. Ich suche mal andere Webseiten mit TLSv1.2 und schaue was da passiert.
Dauert wsl. ein paar Tage..Feedback kommt.
LWZ 304 (BJ 2017; FW 7.09); DHH o. Keller; 100m² Wohnfläche
FHEM auf USB-Stick an FritzBox 7560 (FW 7.29)

Wernieman

Nochmals (.o.) die Frage: Was ist das für ein System in welcher Version?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

timtom2000

Mit "System" meinst du die Box/HW auf der FHEM läuft?!
Ist eine FritzBox 7560 mit freetz-ng-18722M-6e2a97c09, darauf dann FHEM in aktuellster Version.
Die FB hatte ursprgl. (vor Freetz) die 7.12 FW als Basis.
LWZ 304 (BJ 2017; FW 7.09); DHH o. Keller; 100m² Wohnfläche
FHEM auf USB-Stick an FritzBox 7560 (FW 7.29)

betateilchen

ich mach mal das Popcorn klar...
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!