File() mit https

Hallo,

habe ein Problem mit file() im Zusammenhang mit SSL (HTTPS). Habe schon viel darüber gefunden und gelesen aber komme trotzdem nicht weiter.

im Prinzip geht es nur darum Daten von einem SSL-gesicherten Server einzulesen. Also: file(„https://…“); Auf meinem Testserver bei 1und1 ist das auch gar kein Problem. Nun soll das ganze aber unter einem Windowssystem, PHP4.3 laufen. Ich habe schon rausgefunden, dass es da Probleme mit der SSL-Unterstützung geben kann. Daher habe ich nun erstmal ein weiteres Testsystem bemüht, auch auf Windows, allerdings php5 installiert über XAMPP. Geht auch nicht. Ich bekomme als Meldung:

Warning: file(https://…) [function.file]: failed to open stream: No error in C:\xampp\htdocs\ssltest.php on line 6

Mit „http“ geht es auch auf allen Testsystemen wunderbar. Sobald das „s“ drin ist nicht.

Nun habe ich natürlich schon ohne Ende gesucht bei Google. Meistens wird empfohlen OpenSSL zu installieren. Das hab ich dann auch gemacht. Bloß geht es leider immer noch nicht. Openssl scheint zu laufen. Ich kann auf https://127.0.0.1 zugreifen und bekomme ne Antwort. Außerdem komme ich in der Eingabeaufforderung in die OpenSSL-Hilfe und die PHP-info sieht auch gut aus (weiß nicht 100%ig was da alles wichtig ist.)

Mein Problem also: wie komme ich weiter? Muss ich noch irgendwelche OpenSSL-Funktionen bemühen? Komme ich mit:

stream_wrapper_register();

irgendwie weiter? Und warum geht das so einwandfrei auf dem 1&1-Server? Dem ist egal ob ich file(„http…“); oder file(„https…“); mache.

Vielleicht kann mir ja jemand helfen. Würde mir den Schlaf nachts zurückbringen…

Hallo,

kannst du das schon ausschliessen http://bugs.php.net/bug.php?id=22061

Ja, so zimlich. Jetzt geht ja der Apache gar nicht erst an. Ich glaube mir fehlt echt die richtige mod_ssl. Vielleicht ist ein Update des Gesamtsystems wirklich am besten :frowning:

Ok, jetzt geht es auf meinem XAMPP System, aber nicht auf dem System wo es später laufen soll. Mein Problem war, dass ich in einer falschen php.ini rumkonfiguriert habe. Es gibt aber mehrere. Eine für die Konsolen-Version und eine für die andere „Modulversion?“. Bei mir lag eine unter php/php.ini und die andere, von der ich nichts wusste unter apache/bin/php.ini. Beide haben aber auswirkungen auf den Apache ansich!

Jetzt habe ich das Problem, dass das ganze aber unter Apache 2.0.53 laufen soll, welcher ohne mod_ssl daherkommt. Mit höheren Versionen der Datei mod_ssl.so geht es nicht. Ich brauche da wohl auch die 2.0.53. Aber wo finde ich die? Und gibt es die überhaupt?

Sobald ich LoadModule ssl_module modules/mod_ssl.so ein

Hallo

Sobald ich LoadModule ssl_module modules/mod_ssl.so ein

Nanu, fehlt da nicht ein Satzende?
Wie auch immer: Du hast vorhin geschrieben, dass deine Testsysteme unter Windows laufen. Die Dateiendung für Windowsbibliotheken ist aber *.dll. *.so ist eine Linux-Bibliothek.

Johannes

Hallo

Also ich kann mit file() auch Seiten mit ungültigem Zertifikat öffnen. Vermutlich hat sich seit dem Bugreport das Verhalten von PHP geändert.

Johannes