PHP cURL त्रुटि कोड 60


85

जब मैं अमेज़ॅन PHP SDK का उपयोग करने के लिए विंडोज़ (wamp का उपयोग करके) पर php वातावरण सेटअप करने की कोशिश कर रहा हूं, जब मैं एक नमूना परीक्षण चलाने की कोशिश करता हूं तो मुझे निम्नलिखित त्रुटि मिलती है:

Fatal error: Uncaught exception 'cURL_Exception' with message 'cURL resource: Resource id #10; cURL error: SSL certificate problem: unable to get local issuer certificate (cURL error code 60). See http://curl.haxx.se/libcurl/c/libcurl-errors.html for an explanation of error codes.' in C:\wamp\www\AWSSDKforPHP\lib\requestcore\requestcore.class.php on line 848

मैंने पहले ही अपनी php.ini पर निम्न पंक्ति जोड़ दी है

curl.cainfo = C:\Windows\ca-bundle.crt

जो इस VBS स्क्रिप्ट VBS- स्क्रिप्ट का उपयोग करके बनाए गए प्रमाणपत्र का स्थान है

मैंने अपनी WAMP सेवा को भी पुनः आरंभ किया है।

PHP सूचकांक कर्ल संदर्भ


6
मामले में आप प्रमाणीकरण प्रक्रिया के बारे में परवाह नहीं है, तो आप पूरी तरह उसे अक्षम कर सकते curl_setopt($rest, CURLOPT_SSL_VERIFYPEER, false);
denispyr

इससे मेरे लिए समस्या हल हो गई - stackoverflow.com/a/32095378/178163 मूल रूप से 2 php.ini फाइलें हो सकती हैं
जॉर्ज कगन

2
पहली बार इस मुद्दे से टकराए लोगों के लिए, जैसे मैंने किया, इसके पीछे का कारण, जहां तक ​​मैं समझता हूं (मुझे गलत होने पर सही समझें), यह है कि ब्राउज़र के माध्यम से HTTPS कनेक्शन की स्थिति के विपरीत, CURL अनुरोध सर्वर से प्रमाण पत्र नहीं मिलता है। तो, हमें मैन्युअल रूप से साइट का प्रमाण पत्र डाउनलोड करने और इसे PHP आईएनआई में जोड़ने की आवश्यकता है। क्लाइंट के अंत में प्रमाण पत्र का यह सत्यापन HTTPS कनेक्शन प्रक्रिया का एक हिस्सा है, और ऐसा लगता है, इसे बाईपास किया जा सकता है। यह वह जगह है जहाँ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);तस्वीर में आता है।
संदीपन नाथ

एक आकर्षण के रूप में काम किया !!!! धन्यवाद!
रोड्रिगो सेरंडेलो

जवाबों:


226

इस प्रमाणपत्र रूट प्रमाणपत्र बंडल का उपयोग करें:

https://curl.haxx.se/ca/cacert.pem

इस प्रमाणपत्र बंडल को अपनी डिस्क पर कॉपी करें। और इस पर प्रयोग करेंphp.ini

curl.cainfo = "path_to_cert\cacert.pem"

10
और मामले में यह समस्या का समाधान नहीं करता है? मैंने सेट किया curl_setopt($ch, CURLOPT_CAINFO, ini_get('curl.cainfo'));और php.ini में [cURL] curl.cainfo = C:\dev\xampp\php\cacert.pem । फ़ाइल वहाँ है, लेकिन मुझे अभी भी त्रुटि 60 हो रही है। कुछ ऐसा है जो मुझे याद आ रहा है?
ओवरफ्लो

3
@Overflowh दो प्रकार के होते हैं php.ini: एक php-cli के लिए दूसरा php-web (Apache, nginx, ...) के लिए। आपको curl.cainfo = "path_to_cert\cacert.pem"वेब के लिए सेट करने की आवश्यकता है । दूसरी ओर, यदि आप देख सकते हैं curl.cainfoकि आपके php जानकारी दृश्य में सत्य है, तो उस समय अनुमति जारी हो सकती है।
हुसेन बाबाल

खैर, वास्तव में मैं curl.cainfoअपने php जानकारी में नहीं देख सकता । क्या इसका मतलब यह है कि मैंने गलत फ़ाइल में मान डाला?
Overflowh

1
हां, कृपया अपने php.ini फ़ाइल स्थान को दोबारा जांचें। आपको वह वेब संस्करण में डालने की आवश्यकता है
हुसैन बाबाल

मैंने apache php.ini में जोड़ा है, लेकिन इसने काम नहीं किया
कासिम बादामी

31

मैं इसे php.iniफ़ाइल को संशोधित करके ठीक कियाC:\wamp\bin\apache\apache2.4.9\bin\

curl.cainfo = "C:/wamp/bin/php/php5.5.12/cacert.pem"

पहले मैं php.iniफ़ाइल को संशोधित करके कोशिश कर रहा था C:\wamp\bin\php\php5.5.12\और यह काम नहीं किया।

आशा है कि यह किसी ऐसे व्यक्ति की मदद करता है जो php.iniसंशोधित करने के अधिकार की खोज कर रहा है


1
धन्यवाद। सभी इसे फ़ाइल curl.haxx.se/ca/cacert.pem से डाउनलोड कर रहे थे , और अपाचे php.ini फ़ाइल में इसके लिए पथ सेट कर रहे थे, जैसा आपने कहा था। कृपया लोगों को जागरूक करें, आप अपनी इच्छानुसार कहीं भी कैटर डाल सकते हैं, बस यह सुनिश्चित कर लें कि आपने सही तरीके से रास्ता रखा है। इसके अलावा, सुनिश्चित करें कि आप अर्धविराम को हटा दें!
दान Zuzevich

1
इसके बाद अपाचे को पुनः लोड करना न भूलें।
एचकेर २२

17
php --ini

यह आपको बताएगा कि किस php.ini फ़ाइल को लोड किया जा रहा है, इसलिए आपको पता है कि किसको संशोधित करना है। मैंने गलत php.ini फ़ाइल को बदलने में बहुत समय बर्बाद किया क्योंकि मेरे पास WAMP और XAMPP स्थापित था।

इसके अलावा, php.ini को बदलने के बाद WAMP सर्वर (या जो भी आप उपयोग करते हैं) को पुनरारंभ करना न भूलें।


1
जीवन रक्षक! 3 लानत दिनों की समस्या है और यह मुद्दा
su

13

@Overflowh मैंने उपर्युक्त उत्तर को भी बिना किसी भाग्य के आज़माया। मैंने php संस्करण 5.3.24 से 5.5.8 में बदल दिया क्योंकि यह सेटिंग केवल php 5.3.7 और इसके बाद के संस्करण में काम करेगी। मैंने तब यह पाया कि http://flwebooks.biz/posts/how-fix-curl-error-60-ssl-issue मैंने cacert.pem को वहां से डाउनलोड किया था और जिसको मैंने डाउनलोड किया था / कर दिया था उसे curl.xxx.se से बदल दिया। ऊपर जुड़ा हुआ है और यह सब काम करना शुरू कर दिया है। मैं सत्यापित करने के लिए पेपैल सैंडबॉक्स IPN प्राप्त करने की कोशिश कर रहा था। .Pem स्वैप सब ठीक है के बाद कहने के लिए खुश phl.ini में curl.cainfo सेटिंग का उपयोग करना ठीक है, जो अभी भी 5.34.4 में नहीं था।


2
मैं एक ही मुद्दे का सामना कर रहा था और केवल ऊपर .pem फ़ाइल फ़ॉर्म को डाउनलोड करके निर्धारित किया गया था। धन्यवाद
साकिबहमद

4
Haha मैं इस पर विश्वास नहीं कर सकता! मैं FLWebsites.biz का मालिक हूं और मैं इस पोस्ट से पूरी तरह अनजान था कि मेरा उल्लेख किया गया था ... मैंने वह ब्लॉग लिखा था!
एचटीएमएलयूजी

मैं इस मुद्दे का पता लगाने की कोशिश कर रहा हूं, और 3-4 घंटे बाद आखिरकार मैं इस जवाब पर अड़ गया। मैंने कहा ओह अच्छा, क्यों न फिर से एक और पेम फाइल की कोशिश की जाए। और आश्चर्य: यह अंत में काम किया। उस ब्लॉग को खोजने के लिए धन्यवाद :)
सौलिल

यह विंडोज 10, आईआईएस के तहत मेरी cacert.pem समस्या को हल करता है। धन्यवाद।
जकौ

3
क्षमा करें, मैंने अपनी साइट को नीचे ले लिया। सीधे स्रोत पर जाएं: curl.haxx.se/docs/caextract.html
HTMLGuy

8

@ हुसेन बाबाल

मुझे उपरोक्त प्रमाणपत्र के साथ त्रुटि हो रही है, लेकिन मैं इस प्रमाण पत्र और इसके काम करने की कोशिश करता हूं।

https://gist.github.com/VersatilityWerks/5719158/download


वाह। यह पागलपन है। मैं विश्व स्तर पर cacert.pem को सेट करने का तरीका ढूंढ रहा था और इसमें भाग गया। आई एएम वर्सेटिलिटीवार्क्स हाहा। आपने मेरे जिस्म का इस्तेमाल किया।
HTMLGuy

5

सबसे पहले, हमें इस प्रमाणपत्र रूट प्रमाणपत्र बंडल को डाउनलोड करने की आवश्यकता है:

https://curl.haxx.se/ca/cacert.pem

इस फ़ाइल को Wamp / Xampp फ़ोल्डर में PHP फ़ोल्डर में कहीं ले जाएँ।

फिर अपना "php.ini" संपादित करें:

curl.cainfo = "C: /path/to/your/cacert.pem"

तथा

openssl.cafile = "C: /path/to/your/cacert.pem"

महत्वपूर्ण:

सुनिश्चित करें कि आप अपने विंडो एक्सप्लोरर द्वारा सीधे "php.ini" फ़ाइल खोलें। (मेरे मामले में: "C: \ DevPrograms \ wamp64 \ bin \ php \ php5.6.25 \ php.ini")।

सिस्टम ट्रे में Wamp / Xampp आइकन के मेनू में शॉर्टकट "php.ini" का उपयोग न करें। इस शॉर्टकट ने मेरे द्वारा सामना किए गए कुछ मामलों में काम नहीं किया।

"Php.ini" को सहेजने के बाद आपको Wamp आइकन में "सभी सेवाएँ पुनरारंभ करें" या CMD को बंद / फिर से खोलने की आवश्यकता नहीं है।

"Var_dump (Opensl_get_cert_locations ())?" और पंक्ति को देखें: ["ini_cafile"] => string (40) "C: /path/to/your-cacert.pem" के साथ प्रयास करें।

किया हुआ।


एक्सप्लोरर के माध्यम से php.ini फ़ाइल खोलने के बारे में आपका नोट वास्तव में काम किया है! और मैं आखिरकार समझ गया कि wamp आइकन से php.ini को एक अलग रास्ता मिल गया है। धन्यवाद!!!
Doctiger

3

समस्या ठीक हो गई, https://curl.haxx.se/ca/cacert.pem डाउनलोड करें और इसे "कहीं" डालें, और इस पंक्ति को इसमें जोड़ें php.ini:

curl.cainfo = "C:/somewhere/cacert.pem"

पुनश्च: मुझे xampp के साथ ड्रुपल पर मॉड्यूल स्थापित करने की कोशिश करके यह त्रुटि मिली।


3

समस्या का सबसे आसान समाधान क्षेत्र में नीचे दिए गए आदेश को जोड़ना है।

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);

इसके इस्तेमाल से किसी भी सर्टिफिकेट या किसी चीज को जोड़ने की जरूरत नहीं होगी।


2

नीचे दिए गए शब्दों को php.ini [मार्ग में '\' के बजाय 'का उपयोग करें'] curl.cainfo = "path / cacert.pem"

मेरे XAMPP को पुनः आरंभ किया। इसने मेरे लिए अच्छा काम किया। धन्यवाद



1

सबसे पहले आपको इस लिंक से प्रमाण पत्र डाउनलोड करना होगा

https://curl.haxx.se/ca/cacert.pem

और इसे उस स्थान पर रखें जिसे आप डाउनलोड करने योग्य फ़ाइल का नाम चाहते हैं: cacert.pem तो मेरे मामले में मैं इसे C: \ wamp64 \ bin \ php \ cacert.pem के नीचे रख दूंगा

फिर आपको php.ini फ़ाइल का स्थान निर्दिष्ट करना होगा

उदाहरण के लिए, मैं php 7 का उपयोग कर रहा हूँ php.ini फ़ाइल यहाँ स्थित है: C: \ wamp64 \ bin \ php \ php7.0.10 \ php.ini

तो उस फ़ाइल तक पहुँचें और इस लाइन को अनइंस्टॉल करें; Opensl.cafile

यह भी इस तरह दिखता है कि यह इस तरह खुलता है। cscileile = "C: \ wamp64 \ bin \ php \ cacert.pem"

अंत में अपने अपाचे सर्वर को पुनः आरंभ करें और बस


1

महत्वपूर्ण : 4 घंटे के बाद, लार्वा 5.7 और php 7 के साथ काम करना। + और रन / उपयोग php आर्टिसिन, लोकलहोस्ट पर मेलगुन से जुड़ने की कोशिश में सेवा करता है।

समस्या को हल करने के लिए महत्वपूर्ण आईपी ​​के साथ काम नहीं करते http://127.0.0.1:8000 लोकलहोस्ट का उपयोग करें या फ़ाइल फ़ाइल द्वारा डोमेन नाम सेट करें

ठीक है ,


0

समाधान आपके php संस्करण में स्थित फ़ाइल php.ini को संपादित करना है (मेरे लिए यह php7.0.10 है) अपाचे का php.ini नहीं। आप इस तरह एक टिप्पणी फ़ाइल मिल जाएगा; curl.cainfo बस इस लाइन को इस curl.cainfo = "C: \ permCertificate \ cacert.pem" की तरह बदलें

"PermCertificate" निर्देशिका बनाना न भूलें और इसके अंदर "cacert.pem" फ़ाइल की प्रतिलिपि बनाएँ।


मेरे लिए Ampps में काम करता है, धन्यवाद
अलेजांद्रो अरंडा

-1

बस आप जानते हैं कि मेरे लिए क्या काम किया है, https://curl.haxx.se/ca/cacert पर फ़ाइल .... हालांकि, पोस्ट में ज़िप फ़ोल्डर में एक ( http: // flwebooks) पर काम नहीं किया .biz / पोस्ट / कैसे-फिक्स-कर्ल-एरर -60-एसएसएल-इश्यू ) मेरे लिए बिना किसी मुद्दे के साथ काम किया।

जैसा कि दूसरों ने कहा है, सर्टिफिकेट फ़ाइल को अपनी हार्ड ड्राइव पर किसी लोकेशन पर कॉपी करें, लाइन को अपडेट करें

;curl.cainfo 

पढ़ने के लिए अपने php.ini फ़ाइल में

curl.cainfo= "path_to_cert\cacert.pem"

अपने Apache सर्वर को पुनरारंभ करें।


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