繁体   English   中英

在服务器中卷曲“连接中的未知SSL协议错误”错误,但在本地工作

[英]curl “Unknown SSL protocol error in connection” error in server, but works on local

我正在尝试使用以下代码从网站检索数据(我已经审查了网址):

<?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);

?>

它在本地工作正常,但不在服务器中。 这是本地的输出:

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

这是服务器的输出:

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

任何其他网址工作得很好,问题是这个特定的。

localhost PHP版本:5.4.23

服务器PHP版本:5.5.7

提前致谢

尝试设置cURL参数

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

解决了 由于这个已知的错误http://sourceforge.net/p/curl/bugs/1319/我将curl降级到7.33并且它有效。

就像这篇文章的情况一样,添加curl_setopt($ch, CURLOPT_SSLVERSION,3); 今天没有立即解决问题,SSL已经重新验证并被接受。

我有类似的情况,同样的错误。 使用这样的常量使它工作:

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

研究链接: https//github.com/guzzle/guzzle/issues/1364

其他常量: https//curl.haxx.se/libcurl/c/CURLOPT_SSLVERSION.html

尝试两种选择

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

如果仍然无法正常工作,则可能会在您的服务器上阻止URL。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM