2014-11-05 12 views
7

recent vulnerability discovered in SSLv3 की वजह से, कई वेब सेवा प्रदाताओं (यानी पेपैल, फेसबुक, Google) इसे अक्षम कर रहे हैं और हमें इसके बजाय टीएलएस का उपयोग करना चाहते हैं। मुझे यह समझने में थोड़ा परेशानी हो रही है कि यह कैसे करें।एसएसएलवी 3 से टीएलएस तक PHP कर्ल अनुरोध अपडेट करें ..?

मैं वर्तमान में अपने कर्ल अनुरोधों को संभालने के लिए निम्न फ़ंक्शन का उपयोग कर रहा हूं।

function CURLRequest($Request = "", $APIName = "", $APIOperation = "", $PrintHeaders = false) 
{ 
    $curl = curl_init(); 
      curl_setopt($curl, CURLOPT_VERBOSE, 1); 
      curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); 
      curl_setopt($curl, CURLOPT_TIMEOUT, 30); 
      curl_setopt($curl, CURLOPT_URL, $this->EndPointURL); 
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
      curl_setopt($curl, CURLOPT_POSTFIELDS, $Request); 

    if($this->APIMode == 'Certificate') 
    { 
     curl_setopt($curl, CURLOPT_SSLCERT, $this->PathToCertKeyPEM); 
    } 

    $Response = curl_exec($curl); 

    /* 
    * If a cURL error occurs, output it for review. 
    */ 
    if($this->Sandbox) 
    { 
     if(curl_error($curl)) 
     { 
      echo curl_error($curl).'<br /><br />'; 
     } 
    } 

    curl_close($curl); 
    return $Response; 
} 

जब मैं, पेपैल के सैंडबॉक्स मार की कोशिश हालांकि, जहां वे पहले से ही इस पर अक्षम कर दिया, मैं एक cURL त्रुटि के साथ अंत: त्रुटि: 14,077,410: एसएसएल दिनचर्या: SSL23_GET_SERVER_HELLO: SSLv3 चेतावनी हाथ मिलाना विफलता

मुझे जो जानकारी मिली है वह यह है कि मुझे एसएसएल के बजाय टीएलएस का उपयोग करने के लिए इसे बदलने की जरूरत है, और मैंने जो अन्य उत्तरों को देखा है, वह बस मेरे कार्य में एक कर्ल विकल्प जोड़कर ऐसा करने के लिए कहता है ...

मैंने कहा था टी विकल्प, हालांकि, और मुझे अभी भी एक ही परिणाम मिल गया है। मैं इस काम को कैसे प्राप्त कर सकता हूं इस बारे में कोई भी जानकारी बहुत सराहना की जाएगी। धन्यवाद!

+0

क्या आप कर्ल के पुराने संस्करण पर हैं? [यह उत्तर] देख रहे हैं (http://stackoverflow.com/questions/26452755/php-curl-is-probably-using-sslv3-insted-of-tls-when-connecting-to-https) यह कम से कम 7.1 9 लगता है टीएलएस के साथ समस्या है। – cOle2

+0

हाँ, मैंने अभी भी यह देखा है। अब मेरे कर्ल संस्करण को देखने का तरीका जानने का प्रयास कर रहा है। मुझे इससे पहले कभी भी गड़बड़ नहीं हुई है। –

+0

ऐसा लगता है कि मैं 7.36.0 पर हूं, इसलिए यह मेरी समस्या नहीं होनी चाहिए। –

उत्तर

2

से कॉपी किया गया: SSL error can not change to TLS

कोशिश अपने कोड में curl_setopt($curl, CURLOPT_SSL_CIPHER_LIST, 'TLSv1'); जोड़ें।

अगर आप कर्ल यह काम करेंगे OpenSSL libssl आधारित नहीं बल्कि अगर एनएसएस आधारित है।

+0

हां, ऐसा लगता है कि यह चाल चल रही है। क्या हमें इन्हें किसी भी तरह मर्ज करना चाहिए .. ?? –

+0

मैं आपके शब्द को पसंद करता हूं जो डुप्लिकेट उत्तर से अधिक सामान्य है, लेकिन सीज़र को सीज़र देने के लिए यह जवाब मेरा नहीं है ... –

+0

@ फिलिपेलहार्डी, मुझे एसएसएलवी 3 हैंडशेक विफलता मिल रही है, भले ही मेरे पास 'CURLOPT_SSL_CIPHER_LIST' TLSv1 –

3

पेपैल अपडेट होने तक एक बेहतर समाधान अपने मूल एसडीके को सीधे आपके आवेदन में CURLOPT_SSL_CIPHER_LIST को ओवरराइड करना होगा। इस तरह आपको सीधे एसडीके-कोर-पीएचपी पैकेज में हस्तक्षेप नहीं करना पड़ेगा और आप इसे भविष्य में अपग्रेड करने के लिए स्वतंत्र होंगे।

आप अपने ऐप के बूटस्ट्रैप या भुगतान प्रसंस्करण तर्क के लिए निम्न की तरह कुछ जोड़ सकते हैं:

PPHttpConfig::$DEFAULT_CURL_OPTS[CURLOPT_SSL_CIPHER_LIST] = 'TLSv1'; 

बस सुनिश्चित करें कि आप इसे अच्छी तरह टिप्पणी कर सकते हैं और इसे बाहर ले जाने की बाद में जब इस मुद्दे को कोर में समझौता किया गया है याद ।

+2

पर सेट हो, क्या आप कृपया विस्तार से जा सकते हैं जहां (पथ/फ़ाइल या सेटिंग्स) मुझे यह लाइन जोड़नी है। धन्यवाद! – Raffael

+0

अरे राफेल, आप इसे कहीं भी जोड़ सकते हैं, आप निश्चित रूप से प्रत्येक पगेलोड पर कॉल करेंगे। यह आपके ढांचे पर निर्भर करता है लेकिन आमतौर पर इसमें किसी प्रकार का "बूटस्ट्रैप"/कॉन्फ़िगरेशन फ़ाइल होगी जहां आप इस तरह की चीज़ जोड़ सकते हैं। –

0

मैंने टर्मिनल के माध्यम से nss लाइब्रेरी को अपडेट करने का संकल्प किया।

0

यदि उपरोक्त मदद नहीं करता है, तो OPENSSL संस्करण की जांच करें। इसकी संभावना OPENSSL संस्करण < = 0.9.8 की वजह से है। PHP7 को अपडेट करने में मदद करता है, जो OPENSSL के उच्च संस्करण के साथ आता है।

संबंधित मुद्दे