PHP 35:错误:14094410:SSL例程:SSL3_READ_BYTES:sslv3警报握手失败

pho*_*x84 5 php curl

cURL停止了工作.我开始得到这个错误(它使用工作到几个小时前).

我正在使用PHP的cURL扩展.我找到了curl命令行的一些解决方案,但不幸的是我不理解它们:/我不知道如何将它们移动到PHP cURl标志.

cURL conf:

$curl=curl_init();
curl_setopt($curl, CURLOPT_URL, "https://pln.bitcurex.com/data/ticker.json");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSLVERSION, 3);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_USERAGENT, $this->useragent);
curl_setopt($curl, CURLOPT_VERBOSE, 0);
curl_setopt($curl, CURLOPT_HEADER, FALSE);
curl_setopt($curl, CURLOPT_HTTPHEADER, $this->headers);

if(substr($url, 0, 5)=='https') curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);

if($this->ciastko)
{
    curl_setopt($curl, CURLOPT_COOKIEJAR, $this->ciastko);
    curl_setopt($curl, CURLOPT_COOKIEFILE, $this->ciastko);
}

if($this->post)
{
    if( is_array($this->post) && count($this->post) > 0 )
    {
        $postdata = http_build_query($this->post,'','&');
    }
    elseif( is_string($this->post) )
    {
        $postdata = $this->post;
    }
    else $postdata = '';

    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata);
}

$wynik=curl_exec($curl);
Run Code Online (Sandbox Code Playgroud)

错误:

35:错误:14094410:SSL例程:SSL3_READ_BYTES:sslv3警报握手失败

任何想法如何解决这一问题?

小智 12

我只是改变了

curl_setopt($ curl,CURLOPT_SSLVERSION,3);

curl_setopt($ curl,CURLOPT_SSLVERSION,4);


sat*_*tyr 10

我知道这有点过时的问题,但我有其他人的解决方案:

curl_setopt($ch, CURLOPT_SSLVERSION, 3);
curl_setopt($ch, CURLOPT_SSL_CIPHER_LIST, 'SSLv3');
Run Code Online (Sandbox Code Playgroud)

  • 由于POODLE漏洞,许多站点现在都禁用SSL 3.0.你应该切换到TLS,它看起来像这样:curl_setopt($ ch,CURLOPT_SSLVERSION,CURL_SSLVERSION_TLSv1) (3认同)