Mit "HTTPS" - link mit php-Methoden (file_get_contents, getimagesize)
Bekomme ich ein problem wenn ich versuche zu Lesen, die HTTPS-url in meine Webseite.
Wenn ich "http", ist es kein problem (mit file_get_contents und curl), aber wenn ich remplace "http" durch "https", dass diese Methoden nicht funktionieren.
Bekomme ich einige Fehler:
failed to open stream: operation failed occured
Failed to enable crypto occured
SSL operation failed with code 1. OpenSSL Error messages: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
In meinem browser werden alle Methoden arbeiten:
https://ssl10.ovh.net/~fyprbqhq/_perso/facebook.myclimb/test.php (Display zeigt "OK")
In phpinfo() hab ich:
openssl
OpenSSL support enabled
OpenSSL Version OpenSSL 0.9.8c 05 Sep 2006
Wenn Sie irgendwelche Ideen haben.
Danke für die Hilfe.
(Ps: get_headers() funktionieren nicht, auch mit https in meinem Fall)
Mehr info:
file_get_contents:
$data = file_get_contents("https://ssl10.ovh.net/~fyprbqhq/_perso/facebook.myclimb/test.php");
Curl:
$curl_handle = curl_init();
curl_setopt($curl_handle, CURLOPT_URL, "http://ssl10.ovh.net/~fyprbqhq/_perso/facebook.myclimb/test.php");
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT,2);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_handle, CURLOPT_SSL_VERIFYPEER, false);
$data = curl_exec($curl_handle);
curl_close($curl_handle);
- sind Sie sicher, dass file_get_contents funktioniert über http? Ich habe zwei verschiedene Ideen für fopen/curl, aber Sie sind nur wahr, wenn file_get_contents scheitert in beiden Fällen auch:).. hast du versucht mit einem anderen https-url?
- könnte man die Zeile, die Sie verwenden, downloaden Sie den Inhalt der Datei.
- Nach dem, was ich gelesen habe auf anderen Foren, ja, file_get_contents sollte funktioniert. Aber in diesen Fällen (https) habe ich gelesen, dass curl ist besser geeignet. Neverthelesse, versuchte ich zu Lesen, eine google "https" - link, und es funktioniert (mit beiden Methoden).
- stackoverflow.com/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ausgehend von der Fehlermeldung, die Sie empfangen (SSL23_GET_SERVER_HELLO:unbekanntes Protokoll) ist es fast sicher verursacht durch die server mit einer neueren version von SSL als Ihre Kunden.
Dem server ist wahrscheinlich eine version >= 1.0.0, während Sie mit der 0.9.8 c
Ihre SSL-version ist von 2006. Werfen Sie einen Blick auf die - Liste der Schwachstellen in OpenSSL in den letzten 5 Jahren, als einen Grund für ein upgrade.
Viele andere Menschen haben von ähnlichen Erfahrungen berichtet
. Auch hier und hier.
Wenn Sie PHP 5.6.x, es gibt ein paar änderungen, die Auswirkungen SSL/TLS-Aushandlung.
Arbeiten, um hosts müssen nicht überprüfen der ssl - /tls-sockets, versuchen Sie es mit dieser.
Ist dies natürlich nicht empfehlenswert, da Sie zu Lasten der Verifikation von Ihrem Gastgeber.
Für mich, dieses kam ins Spiel, während der Zugriff des flickr api -- api.flickr.com.
Referenz: http://php.net/manual/en/migration56.openssl.php