wake-up-neo.net

curl "Unbekannter SSL-Protokollfehler in Verbindung"

Ich versuche, Daten von einer Site (ich habe die URL zensiert) mit diesem Code abzurufen:

<?php 

  $url = [doesnt really matter];

  $ch = curl_init();

  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

  $archivo_xml = fopen("test.tst", "w");

  curl_setopt($ch, CURLOPT_FILE,$archivo_xml);

  curl_exec($ch);
  $as1 = curl_getinfo($ch, CURLINFO_NAMELOOKUP_TIME);
  $as2 = curl_getinfo($ch, CURLINFO_CONNECT_TIME);
  $as3 = curl_getinfo($ch, CURLINFO_PRETRANSFER_TIME);
  $as4 = curl_getinfo($ch, CURLINFO_STARTTRANSFER_TIME);
  $as5 = curl_getinfo($ch, CURLINFO_TOTAL_TIME);

  echo "Lookup: ",$as1," \n\r Connect: ",$as2," \n\r Pretransfer: ",$as3," \n\r Starttransfer: ",$as4," \n\r Total: ",$as5,"\n\r","Error: ", curl_error($ch), "\n\r";

  curl_close($ch);
  fclose($archivo_xml);

?>

Es funktioniert zwar lokal, aber nicht auf dem Server. Hier ist die Ausgabe von local:

Lookup: 0.015155 
 Connect: 0.0281 
 Pretransfer: 0.129087 
 Starttransfer: 0.786341 
 Total: 0.786384
Error:

und hier ist die Ausgabe vom Server:

Lookup: 0.028731 
 Connect: 0.043182 
 Pretransfer: 0 
 Starttransfer: 0 
 Total: 60.057787
Error: Unknown SSL protocol error in connection to [censored url] 

Bei jeder anderen URL funktioniert es einwandfrei, das Problem liegt bei dieser speziellen.

localhost PHP Version: 5.4.23

server PHP version: 5.5.7

Danke im Voraus

8
martriay

GEL&OUML;ST. Aufgrund dieses bekannten Fehlers http://sourceforge.net/p/curl/bugs/1319/ habe ich curl auf 7.33 heruntergestuft und es hat funktioniert.

5
martriay

Versuchen Sie,cURLparam einzustellen

curl_setopt($ch, CURLOPT_SSLVERSION,3); // Apparently 2 or 3
15

Da im Falle dieses Beitrags das Hinzufügen von curl_setopt($ch, CURLOPT_SSLVERSION,3); das Problem heute nicht sofort behoben hat, wurde das SSL erneut validiert und akzeptiert.

2
Chintan

Ich hatte eine ähnliche Situation mit dem gleichen Fehler. Die Verwendung einer solchen Konstante hat funktioniert:

curl_setopt( $handle, CURLOPT_SSLVERSION, 'CURL_SSLVERSION_SSLv3' );

Recherchierter Link: https://github.com/guzzle/guzzle/issues/1364

Andere Konstanten: https://curl.haxx.se/libcurl/c/CURLOPT_SSLVERSION.html

1
Ruud Laan

Versuchen Sie es mit beiden Optionen

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

Wenn dies immer noch nicht funktioniert, ist die URL möglicherweise auf Ihrem Server blockiert.

0
kwelsan