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

Php 卷曲;“连接中存在未知SSL协议错误”;服务器出错,但在本地服务器上工作,php,curl,ssl,Php,Curl,Ssl,我正在尝试使用以下代码从站点检索数据(我已对url进行了审查): <?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

我正在尝试使用以下代码从站点检索数据(我已对url进行了审查):

<?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.028731 
 Connect: 0.043182 
 Pretransfer: 0 
 Starttransfer: 0 
 Total: 60.057787
Error: Unknown SSL protocol error in connection to [censored url] 
任何其他url都可以正常工作,问题在于这个特定的url

localhost PHP版本:5.4.23

服务器PHP版本:5.5.7


提前感谢

尝试设置
cURL
参数

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

正如在这篇文章中添加的
curl\u setopt($ch,CURLOPT\u SSLVERSION,3)今天没有立即解决此问题。SSL已重新验证并被接受。

请尝试使用这两个选项

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

如果仍然不工作,则URL可能会在服务器上被阻止。

已解决。由于这个已知的错误,我将curl降到了7.33,它成功了。

。 使用这样的常量可以使其工作:

curl_setopt( $handle, CURLOPT_SSLVERSION, 'CURL_SSLVERSION_SSLv3' );
研究链接:

其他常数:

您可以从服务器ping该url吗?详细选项的输出是什么?从命令行:如何将curl降级到以前的版本?@Umair这取决于您使用的操作系统。在任何linux发行版中,您都应该使用包管理器,如debian/ubuntu中的apt get或fedora/centos中的yum。然而,由于这个问题已经存在3年了,我强烈建议您不要降级cURL,除非有必要。
curl_setopt( $handle, CURLOPT_SSLVERSION, 'CURL_SSLVERSION_SSLv3' );