错误-PHP-cURL-连接中存在未知SSL协议错误-

错误-PHP-cURL-连接中存在未知SSL协议错误-,php,curl,Php,Curl,上面的代码给出了下面的错误 连接到api.site.com时出现未知SSL协议错误:443 根据许多人的建议,下面的代码将解决上述问题,但它并没有帮助。仍然得到相同的错误 $ch = curl_init(); curl_setopt ($ch, CURLOPT_URL, $xml_url); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_HEADER, false); curl_setopt ($c

上面的代码给出了下面的错误

连接到api.site.com时出现未知SSL协议错误:443

根据许多人的建议,下面的代码将解决上述问题,但它并没有帮助。仍然得到相同的错误

$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $xml_url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_HEADER, false);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 0);

$xml = curl_exec($ch);

if(curl_exec($ch) === false) 
{ echo curl_error($ch); }
else 
{ echo 'Operation completed without any errors'; }

curl_close($ch);
return $xml;
curl_setopt ($ch, CURLOPT_SSLVERSION, 3);
我也按照建议尝试了以下内容,但仍然得到相同的错误

$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $xml_url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_HEADER, false);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 0);

$xml = curl_exec($ch);

if(curl_exec($ch) === false) 
{ echo curl_error($ch); }
else 
{ echo 'Operation completed without any errors'; }

curl_close($ch);
return $xml;
curl_setopt ($ch, CURLOPT_SSLVERSION, 3);
请建议我应该在代码中添加什么来修复此错误


谢谢,

您刚刚忽略了SSL证书验证,可能它将帮助您解决问题,请在使用CURL请求时使用以下代码

curl_setopt ($ch, CURLOPT_SSLVERSION, 'CURL_SSLVERSION_SSLv3' );
你可以试试这个代码

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
您也可以将此类用于curl请求


您可以检查网站在curl verbose模式下使用的TLS版本:

$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $xml_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt ($ch, CURLOPT_HEADER, false);

$xml = curl_exec($ch);

if($xml === false) { 
    echo curl_error($ch); 
}else{ 
    echo 'Operation completed without any errors'; 
}
curl_close($ch);
return $xml;
其中输出如下所示:

curl_setopt($curl, CURLOPT_VERBOSE, true);
然后设置CURLOPT\u SSL\u CIPHER\u LIST如下:

...
SSL connection using TLS1.0 / RSA_3DES_EDE_CBC_SHA1
...
其中“TLSv1”是网站使用的TLS版本


更改SSL版本并在curl选项中验证\u PEER/HOST并没有解决我的问题,但这种方法确实解决了问题。

您使用的是哪种curl版本?@DarshanJain,libcurl/7.21.0 OpenSSL/0.9.8q zlib/1.2.3-这在php info.Ty中提到过,但在使用上述代码后仍然会出现相同的错误。