2014-05-09 11 views
5

curl काम करना बंद कर दिया। मैं यह त्रुटि मिलना शुरू कर दिया है (यह काम ठीक कुछ ही घंटों तक प्रयुक्त पूर्व)।PHP 35: त्रुटि: 140 9 4410: एसएसएल दिनचर्या: एसएसएल 3_READ_BYTES: एसएसएलवी 3 अलर्ट हैंडशेक विफलता

मैं 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); 

त्रुटि:

35: त्रुटि: 14,094,410: एसएसएल दिनचर्या: SSL3_READ_BYTES: SSLv3 चेतावनी हाथ मिलाना विफलता

किसी भी विचार कैसे इसे ठीक करने के लिए?

+0

एक ही मुद्दा https://github.com/coreos/etcd/issues/209 –

उत्तर

10

मैं जानता हूँ कि यह थोड़ा पुराना समस्या है, लेकिन मैं दूसरों के लिए एक समाधान मिल गया है:

curl_setopt($ch, CURLOPT_SSLVERSION, 3); 
curl_setopt($ch, CURLOPT_SSL_CIPHER_LIST, 'SSLv3'); 
+1

आप कृपया समझा सकते हैं इन सेटिंग करते हैं और कैसे यह त्रुटि संदेश कर्ल से संबंधित है क्या प्रश्न में के बारे में पूछा? – hakre

+0

यह काम नहीं कर रहा है, और मेरे पास एक ही समस्या है ... ऐसा लगता है कि पुराने ओपनएसएसएल 0.9.8 – Carmageddon

+3

पुराने पुराने केंद्र 5 आधारित सर्वरों पर हो रहा है, POODLE भेद्यता के कारण कई साइटें अब SSL 3.0 अक्षम कर रही हैं। आप टीएलएस के लिए स्विच करना चाहिए, इस तरह दिखेगा जो: curl_setopt ($ ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1) –

10

मैं बस से

curl_setopt($curl, CURLOPT_SSLVERSION, 3);

curl_setopt($curl, CURLOPT_SSLVERSION, 4);

0

इनपुट करने के लिए बदल मान:

$params = Array 
    (
     "username" => "XXXXXXXXXX", 
     "password" => "XXXXXX" 
    ); 

$path ='https://www.XXXXXXXX.com/xx/xxx/format/json/'; 

फंक्शन:

function curlpost($parameters, $path){ 
    $apiUrl = $path; 
    $curl_handle = curl_init(); 
    curl_setopt($curl_handle, CURLOPT_URL, $apiUrl); 
    curl_setopt($curl_handle, CURLOPT_BUFFERSIZE, 1024); 
    curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, TRUE); 
    curl_setopt($curl_handle, CURLOPT_SSL_VERIFYPEER, TRUE); 
    curl_setopt($curl_handle, CURLOPT_SSL_VERIFYHOST, TRUE); 
    curl_setopt($curl_handle, CURLOPT_POST, TRUE); 
    curl_setopt($curl_handle, CURLOPT_PROXY, ''); 
    curl_setopt($curl_handle, CURLOPT_SSLVERSION, 4); 
    curl_setopt($curl_handle, CURLOPT_POSTFIELDS, $parameters); 
    $response = curl_exec($curl_handle); 

    $content = curl_exec($curl_handle); 
    $err  = curl_errno($curl_handle); 
    $errmsg = curl_error($curl_handle); 
    $header = curl_getinfo($curl_handle); 
    curl_close($curl_handle); 

    $header['errno'] = $err; 
    $header['errmsg'] = $errmsg; 
    $header['content'] = $content; 
    curl_close($curl_handle); 
    return $header; 
} 
संबंधित मुद्दे