IPS 3.4 #3803: Problem beim Zugriff auf eine Datei über https

Hallo,

habe aktuell das Problem, dass ich eine Regenradar-Bild-Datei aus dem www herunterladen möchte. Bis vor einigen Wochen war die Homepage ohne Transportverschlüsselung erreichbar. Nun ist sie per https erreichbar.

Nun wollte ich php um php_openssl.dll erweitern. Die Datei ist im Verzeichnis \ip-symcon\ext vorhanden.

In der Datei php.ini habe ich die Erweiterung auch entsprechend eingetragen. Danach IPS heruntergefahren und den kompletten PC neu gestartet, IPS neu gestartet.

Danach fehlt die Erweiterung in der php.ini und die Datei logfile.log sieht wie folgt aus (Ausschnitt):

19.10.2016 20:46:53.126 | 0 | MESSAGE | Kernel | *** IPS STARTET
19.10.2016 20:46:53.126 | 0 | MESSAGE | Kernel | Erstelle…
19.10.2016 20:46:53.172 | 0 | MESSAGE | Kernel | Kernel erstellt #Version: 3.40, CRC: 5412B0BB
19.10.2016 20:46:53.172 | 0 | MESSAGE | Kernel | Initialisiere…
19.10.2016 20:46:53.172 | 0 | MESSAGE | Settings | Erstelle…
19.10.2016 20:46:54.126 | 0 | MESSAGE | Settings | Aufräumarbeiten im Settings Ordner…
19.10.2016 20:46:54.126 | 0 | MESSAGE | ScriptEngine | Erstelle…
19.10.2016 20:46:54.141 | 0 | MESSAGE | ScriptEngine | Benutze PHP 5.4.45
19.10.2016 20:46:54.188 | 0 | MESSAGE | ScriptEngine | >OpenSSL #1: 1.0.1
19.10.2016 20:46:54.188 | 0 | MESSAGE | ScriptEngine | >OpenSSL #1: 1.0.1
19.10.2016 20:46:54.188 | 0 | MESSAGE | ScriptEngine | >Erweiterung: php_bz2.dll
19.10.2016 20:46:54.204 | 0 | MESSAGE | ScriptEngine | >Erweiterung: php_com_dotnet.dll
19.10.2016 20:46:54.204 | 0 | MESSAGE | ScriptEngine | >Erweiterung: php_curl.dll
19.10.2016 20:46:54.204 | 0 | MESSAGE | ScriptEngine | >Erweiterung: php_exif.dll
19.10.2016 20:46:54.204 | 0 | MESSAGE | ScriptEngine | >Erweiterung: php_fileinfo.dll
19.10.2016 20:46:54.219 | 0 | MESSAGE | ScriptEngine | >Erweiterung: php_gd2.dll
19.10.2016 20:46:54.219 | 0 | MESSAGE | ScriptEngine | >Erweiterung: php_gettext.dll
19.10.2016 20:46:54.219 | 0 | MESSAGE | ScriptEngine | >Erweiterung: php_gmp.dll
19.10.2016 20:46:54.219 | 0 | MESSAGE | ScriptEngine | >Erweiterung: php_imap.dll
19.10.2016 20:46:54.235 | 0 | MESSAGE | ScriptEngine | >Erweiterung php_ldap.dll nicht geladen. Fehlende Abhängigkeit: libsasl.dll
19.10.2016 20:46:54.251 | 0 | MESSAGE | ScriptEngine | >Erweiterung: php_mbstring.dll
19.10.2016 20:46:54.251 | 0 | MESSAGE | ScriptEngine | >Erweiterung: php_mysql.dll
19.10.2016 20:46:54.266 | 0 | MESSAGE | ScriptEngine | >Erweiterung: php_mysqli.dll
19.10.2016 20:46:54.266 | 0 | MESSAGE | ScriptEngine | >Erweiterung php_openssl.dll nicht geladen. Nicht nutzbar in Verbindung mit OpenSSL 1.0.1
19.10.2016 20:46:54.282 | 0 | MESSAGE | ScriptEngine | >Erweiterung php_pdo_firebird.dll nicht geladen. Fehlende Abhängigkeit: fbclient.dll
19.10.2016 20:46:54.282 | 0 | MESSAGE | ScriptEngine | >Erweiterung: php_pdo_mysql.dll
19.10.2016 20:46:54.297 | 0 | MESSAGE | ScriptEngine | >Erweiterung php_pdo_oci.dll nicht geladen. Fehlende Abhängigkeit: OCI.dll
19.10.2016 20:46:54.297 | 0 | MESSAGE | ScriptEngine | >Erweiterung: php_pdo_odbc.dll
19.10.2016 20:46:54.297 | 0 | MESSAGE | ScriptEngine | >Erweiterung: php_pdo_pgsql.dll
19.10.2016 20:46:54.313 | 0 | MESSAGE | ScriptEngine | >Erweiterung: php_pdo_sqlite.dll
19.10.2016 20:46:54.313 | 0 | MESSAGE | ScriptEngine | >Erweiterung: php_pgsql.dll
19.10.2016 20:46:54.313 | 0 | MESSAGE | ScriptEngine | >Erweiterung php_snmp.dll nicht geladen. Nicht nutzbar in Verbindung mit OpenSSL 1.0.1
19.10.2016 20:46:54.329 | 0 | MESSAGE | ScriptEngine | >Erweiterung: php_soap.dll
19.10.2016 20:46:54.329 | 0 | MESSAGE | ScriptEngine | >Erweiterung: php_sockets.dll
19.10.2016 20:46:54.344 | 0 | MESSAGE | ScriptEngine | >Erweiterung: php_sqlite3.dll
19.10.2016 20:46:54.344 | 0 | MESSAGE | ScriptEngine | >Erweiterung: php_tidy.dll
19.10.2016 20:46:54.344 | 0 | MESSAGE | ScriptEngine | >Erweiterung: php_xmlrpc.dll
19.10.2016 20:46:54.360 | 0 | MESSAGE | ScriptEngine | >Erweiterung: php_xsl.dll

Hat jemand eine Idee, wo der Fehler liegen könnte, dass die Erweiterung für openssl nicht geladen wurde?

Warum wird die php.ini beim Neustart verändert (löschen der Erweiterung für openssl)?

Vielen Dank und Gruß

wolkensurfer

Du musst OpenSSL 0.9.8 installieren, wenn du SSL mit PHP nutzten willst. Ehrlich gesagt würde ich eher versuchen auf die 4.0/4.1 zu gehen, da du dort diese ganzen Probleme nicht hast.

paresy

Danke paresy für Deine Antwort. Kannst Du mir in wenigen Worten erläutern, warum ich diese Probleme in der 4.0/4.1 nicht haben werde?

Danke!

wolkensurfer

Hallo paresy,

habe letzte Nacht dann doch endlich, da durch die vielen Fehlerreports verunsichert, den Umstieg auf V4.0 gewagt…und er war völlig problemlos in 10 Minuten erledigt!

Nun klappt es auch wieder mit dem Herunterladen des Regenradar-Bildes :slight_smile:

Gruß

wolkensurfer :loveips:

Wünsche allen schöne Weihnachten!

Seit ein paar Tagen habe ich wieder das Problem, dass das Regenradarbild (https) nicht geladen werden kann.

Nach dem Update auf V4.0 wurde das Regenradarbild wieder korrekt geladen. Zwischenzeitlich habe ich das Update auf V4.1 eingespielt und nun kann ich die Datei wieder nicht laden. Ob es letztendlich am Update liegt, kann ich (noch) nicht sagen.

Folgende Meldungen werden angezeigt:

[i]Warning: fopen(): SSL operation failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed in C:\IP-Symcon\scripts\43967.ips.php on line 176

Warning: fopen(): Failed to enable crypto in C:\IP-Symcon\scripts\43967.ips.php on line 176

Warning: fopen(https*…) failed to open stream: operation failed in C:\IP-Symcon\scripts\43967.ips.php on line 176
[/i]

Die Datei cacert.pem ist vorhanden, in der php.ini sind die notwendigen Einträge auch vorhanden. Auch habe ich den Server zwischendurch mal komplett rebootet.

Hat einer eine Idee?

Danke und Gruß

wolkensurfer

Magst du kurz einen Code Snippsel mit der URL hier kopieren? Dann können wir das ggf. schneller nachstellen :slight_smile:

paresy

Hallo paresy,

die URL wird im Code erzeugt, da sie abhängig vom Datum und der Uhrzeit ist:


$remoteImage = "https://kachelmannwetter.com/images/data/cache/px250/complete_px250_";
$remoteImage .= $jahr;
$remoteImage .= "_";
$remoteImage .= $monat;
$remoteImage .= "_";
$remoteImage .= $tag;
$remoteImage .= "_264_";
$remoteImage .= $stunde;
$remoteImage .= $minute;
$remoteImage .= ".png";

$localImage = IPS_GetKernelDir().'webfront\user\rain.png';

//Radarbild Downloaden
$remoteFile = fopen("$remoteImage","rb");
$localFile = fopen("$localImage","wb");

while (!feof($remoteFile)) {
    $chunk = fread($remoteFile,1024);
    fwrite($localFile,$chunk);
}

fclose($localFile);
fclose($remoteFile);

Beispiel für die URL:
[FONT=arial]


https://kachelmannwetter.com/images/data/cache/px250/complete_px250_2016_12_25_264_2210.png

[/FONT]

Hallo paresy,

habe heute morgen die Ursache gefunden:

Wir haben vor ein paar Wochen einen eBlocker (eblocker.com/de) installiert und in diesem wiederum seit wenigen Wochen den SSL-Support aktiviert und dieser wiederum hat offensichtlich den upload verhindert. Vermutlich gibt es einen Handlings-Konflikt zwischen Zertifikat von IPS, eBlocker und der Web-Seite, von der das Image geladen werden soll. Genaueres hierzu muss ich erstmal nachlesen.

Lösung ist die, dass ich nun im SSL-Support des eBlockers die Web-Seite, von der das Image geladen wird, ausschließe. Dadurch mischt sich der eBlocker nun beim SSL-download des Images durch IPS nicht mehr ein und alles ist gut.

Gruß

wolkensurfer

Da hätte ich ja lange überlegen können :rolleyes: Vielen Dank für dein Feedback!

paresy