Ich wollte heute mal wieder ein Update für meinen FHEM-Server einspielen. Er läuft auf einem Raspberry Pi 3b mit Raspbian Jessie.
Statt eines Updates erhalte ich die Fehlermeldung:
https://fhem.de/fhemupdate/controls_fhem.txt: Can't connect(2) to https://fhem.de:443: SSL connect attempt failed error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
Ich habe als wenig erfahrener Linux-Anwender keine Ahnung, wo das Problem liegt. Ich habe bereits im Web gesucht und kann ein paar von mir gemachte Tests hier wiedergeben.
Ein dist-upgrade des Betriebssystems hat funktioniert aber keine Lösung gebracht.
Ein Verbindungsversuch mit OpenSSL openssl s_client -connect fhem.de:443
hat funktioniert. Die installierte Version von OpenSSL ist "OpenSSL 1.0.1t 3 May 2016".
Ein Verbindungsversuch mit curl curl -v https://fhem.de/fhemupdate/
klappt auch. Bei beiden Tests wird aber TLS1.2 statt SSLv3 (s. Fehlermeldung) genutzt.
Eine globale Einstellung für SSL habe ich in der Config nicht gesetzt.
Ich hoffe nun, Ihr könnt mir helfen. Bei Fragen oder weiteren Tests stehe ich gern zur Verfügung.
Moin,
https://forum.fhem.de/index.php/topic,106426.msg1002763.html#msg1002763
Gruß Otto
Moin auch von mir,
ich habe soeben die Änderung durchgeführt, die Rudi vorgeschlagen hat.
Ein weiteres Workaround ist in FHEM/98_update.pm die Zeile 242
Code: [Auswählen]
$src =~ s'^http://fhem\.de'https://fhem.de' if($upd_hasSSL);
auszukomentieren oder zu entfernen.
Vorgehen:
- FHEM runterfahren
- Login über Putty o.ä.
Zum richtigen Directory wechseln:
cd /opt/fhem/FHEM
Die originale Datei 98_update.pm kopieren
sudo cp 98_update.pm 98_update.pm.org
Mit nano die Datei editieren
sudo nano 98_update.pm
Mit "strg-w" nach dem String $src =~ s'^http://fhem\.de'https://fhem.de' if($upd_hasSSL);
suchen
Vorne ein # reinschreiben (= Kommentar)
# $src =~ s'^http://fhem\.de'https://fhem.de' if($upd_hasSSL);
Datei speichern.
FHEM neu starten, Update starten. fheminfo geht dann aber immer noch nicht.
Der Update geht dann 1 mal, da eine neue 98_update.pm erzeugt wird.
Das kann man verhindern, in dem man diese Datei vom Update ausschliesst:
attr global exclude_from_update 98_update.pm
Alles in allem keine gute Lösung, nur ein Workaround.
Besser auf jeden Fall ist es, sich recht bald um einen Systemupdate auf Buster (beim Raspberry Pi als Server) bzw. um ein aktuelles Perl zu kümmern.
Grüße, Helmut
Nach Re-Aktivierung der TLS 1.0 und 1.1 Protokolle ist diese Anleitung hinfällig.
Moin,
als erstes vielen Dank an Otto für die schnelle Hilfe mit dem passenden Link. Auch Dank an Helmut, der die Lösung sehr detailliert aufgeschrieben hat. Es hat so funktioniert und ich konnte gestern mein Update durchführen.
Da unter dem Link von Otto kontrovers über das Abschalten der älteren TLS-Protokolle diskutiert wurde, wurden die Protokolle lt. dl4fb wieder aktiviert. Somit hat sich das Problem erst einmal erledigt. Ein Systemupdate auf Buster wie von Helmut vorgeschlagen wäre natürlich die beste Lösung. Ich habe aber hier auch schon von diversen Problemen unter diesem noch recht neuen OS gelesen.
Eine Idee von mir an die Admins dieses Forums: Eventuell wäre unter FHEM eine neue Rubrik "Systemprobleme" interessant, wo es nur um Probleme mit dem OS, Pearl und Server-Hardware geht.
Die Programmiersprache heißt Perl, und warum ist das vorhandene Board nicht geeignet?
Server - Linux: https://forum.fhem.de/index.php/board,33.0.html