PHP CURL CURLOPT_SSL_VERIFYPEER को अनदेखा कर दिया गया


117

किसी कारण से मैं HTTPS के साथ CURL का उपयोग करने में असमर्थ हूं। सब कुछ ठीक काम कर रहा था मैं कर्ल पुस्तकालयों के उन्नयन चला गया। जब CURL अनुरोध करने की कोशिश कर रहा हूं तो मुझे यह प्रतिक्रिया मिल रही है: SSL CA प्रमाणपत्र के साथ समस्या (पथ? पहुंच अधिकार?)

संबंधित मुद्दों पर यहां पोस्ट किए गए सुझावों के बाद मैंने निम्नलिखित करने की कोशिश की है:

  • मेजबान और सहकर्मी के लिए सत्यापन अक्षम करें

    curl_setopt($cHandler, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($cHandler, CURLOPT_SSL_VERIFYPEER, true);
    
  • सक्षम करें CURLOPT_SSL_VERIFYPEERऔर http://curl.haxx.se/docs/caextract.html से डाउनलोड किए गए cacert.pem को इंगित करें

    curl_setopt($cHandler, CURLOPT_SSL_VERIFYPEER, true);  
    curl_setopt($cHandler, CURLOPT_CAINFO, getcwd() . "/positiveSSL.ca-bundle");
    
  • मैंने पॉजिटिव एलएसएल.का-बंडल के साथ भी वही करने की कोशिश की, जो सर्वर से कनेक्ट करने के लिए मैं प्रयास कर रहा हूं, जो बंडल सीए प्रमाणपत्र के रूप में प्रदान किया गया था।

  • curl.cainfo=cacert.pem(उसी निर्देशिका में फ़ाइल और Apache द्वारा सुलभ) के साथ php ini सेटिंग्स संपादित करें

  • नाम बदलें /etc/pki/nssdbकरने के लिए/etc/pki/nssdb.old

उपरोक्त में से कोई भी Unfortunatelly मेरी समस्या को हल करने में सक्षम नहीं है और मुझे लगातार SSL CA सर्टिफिकेट (पथ एक्सेस अधिकार?) संदेश के साथ समस्या आती है।

और मुझे इस सत्यापन की आवश्यकता नहीं है (मुझे सुरक्षा मुद्दों की जानकारी है)।

क्या किसी के पास कोई अन्य सुझाव है?

अपडेट करें

नवीनतम पुस्तकालयों को अपडेट करने और पूरे बॉक्स को पुनरारंभ करने के बाद, केवल अपाचे नहीं जो मैं यह कर रहा था लगता है कि यह अब फिर से काम कर रहा है !!!


1
क्या आपने अपग्रेड किए गए कर्ल लाइब्रेरी को एक अलग SSL स्टैक (GnuTLS बनाम ओपनएसएसएल, शायद) के खिलाफ संकलित किया है?
ब्रूनो

मुझे ऐसा नहीं लगता। सिस्टम फेडोरा 16 है और यह वास्तव में यम अपडेट का मामला था। सबसे कष्टप्रद बात यह है कि मुझे इस पूरे सत्यापन की आवश्यकता नहीं है / मैं चाहता हूं और मैं इसे केवल अक्षम करने में सक्षम नहीं हो सकता।
ग्रेग

यदि आप सुरक्षा के लिए HTTPS का उपयोग करने का लक्ष्य बना रहे हैं, तो आप हमेशा इस सत्यापन प्रक्रिया को करना चाहेंगे।
ब्रूनो

मुझे इस बारे में पता है, हालाँकि यहाँ मेरा उपयोग मामला इसे थोड़ा बेमानी बनाता है। इसके अलावा, मैंने नवीनतम उपलब्ध कर्ल को अद्यतन किया है, और 5.4 से php। अब, त्रुटि संदेश चला गया है, लेकिन मुझे कर्ल से कोई भी कॉटेंट नहीं मिला :)
ग्रेग

हा, अब मुझे कहीं न कहीं कर्ल_रनो फंक्शन रिपोर्ट्स स्टेटस 77 मिला है जो मैनुअल के अनुसार CURLE_SSL_CACERT_BADFILE है।
ग्रेग

जवाबों:


240

प्रलेखन के अनुसार: मेजबान या सहकर्मी प्रमाणपत्र को सत्यापित करने के लिए आपको विकल्प के साथ वैकल्पिक प्रमाण पत्र निर्दिष्ट करने की आवश्यकता होती है CURLOPT_CAINFOया विकल्प के साथ एक प्रमाणपत्र निर्देशिका निर्दिष्ट की जा सकती CURLOPT_CAPATHहै।

यह भी देखिए CURLOPT_SSL_VERIFYHOST:

  • 1 एसएसएल सहकर्मी प्रमाणपत्र में एक आम नाम के अस्तित्व की जांच करने के लिए।
  • 2 एक सामान्य नाम के अस्तित्व की जांच करने के लिए और यह भी सत्यापित करें कि यह प्रदान किए गए होस्टनाम से मेल खाता है।

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

5
SSL सत्यापन को बंद करने से वैसे भी SSL की सभी सुरक्षा को हटा दिया जाता है। आपको इसके बजाय अपने PHP कॉन्फ़िगरेशन को ठीक करना चाहिए।
स्कोपी

7
@Scopey लेकिन कभी-कभी आपको स्व-हस्ताक्षरित प्रमाण पत्र के साथ स्थानीय विकास के वातावरण पर इसकी आवश्यकता हो सकती है। इसलिए शायद गैर-सार्वजनिक वातावरण पर इसका कोई मतलब नहीं है, लेकिन अनुस्मारक के रूप में लॉग में कुछ चेतावनी देना हमेशा बेहतर होता है (जैसे SSL verification disabled)
इवान बोरशचोव

2

हम एक CentOS7 मशीन पर एक ही समस्या थी। अक्षम करना VERIFYHOST VERIFYPEERसमस्या का समाधान नहीं है, हम cURL त्रुटि अब और नहीं था लेकिन प्रतिक्रिया अभी भी अवैध था। एक wgetही लिंक के रूप में cURL कर रहा था भी एक प्रमाण पत्र त्रुटि का परिणाम है।

-> हमारा समाधान भी VPS को रिबूट करना था, इससे इसे हल किया गया और हम फिर से अनुरोध पूरा करने में सक्षम थे।

हमारे लिए यह स्मृति भ्रष्टाचार की समस्या थी। VPS को रीबूट करने से मेमोरी में लीबरी फिर से लोड हो गई और अब यह काम करता है। तो अगर उपरोक्त समाधान से @cloverकाम नहीं आता है तो अपनी मशीन को रिबूट करने का प्रयास करें।


सुनिश्चित करें कि यह आंतरायिक नहीं है। मेरे पास पेपाल और पीयर सत्यापन के साथ एक मुद्दा था जहां कभी-कभी यह काम करता था, कभी-कभी यह नहीं होता था। यह बेतरतीब लग रहा था। स्पष्ट रूप से कैफाइल पथ की स्थापना और कर्ल को बता रहा है जहां यह समस्या हल हो गई थी।
नील डेविस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.