Ubuntu 14.04 में कर्ल के साथ सीए प्रमाणित मुद्दों को कैसे ठीक करें?


14

मैं Ubuntu 14.04 का उपयोग कर रहा हूं। जब मैं कर्ल का उपयोग करता हूं, तो मुझे निम्न त्रुटि मिलती है:

curl: (77) error setting certificate verify locations: CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath:

मैं गोगलिंग से जो इकट्ठा करता हूं, वह जिस कैफ़ाइल स्थान की तलाश कर रहा है वह उबंटू के लिए सही नहीं है (और यह मेरे कंप्यूटर पर मौजूद नहीं है), /etc/ssl/certs/ca-certificates.crtउचित स्थान है।

अधिकांश समाधानों में पर्यावरण चर CURL_CA_BUNDLEको उचित स्थान पर स्थापित करना, या मेरे होम डायरेक्टरी में cacert=/etc/ssl/certs/ca-certificates.crt(नव निर्मित) .curlrcफ़ाइल को जोड़ना शामिल है । मैंने दोनों की कोशिश की है, और न ही पूरी तरह से मुद्दे को हल किया है। कर्ल को यह स्थान मिल रहा है, लेकिन यह अभी भी काम नहीं कर रहा है, त्रुटि दे रहा है:

curl: (60) SSL certificate problem: self signed certificate in certificate chain

मैंने उबंटू में कर्ल को अनइंस्टॉल और रीइंस्टॉल करने की भी कोशिश की, और अपने सीए सेर्ट्स को $ sudo update-ca-certificates --fresh अपडेट किया, जिसके साथ सीरियल्स को अपडेट किया, लेकिन फिर भी 60 त्रुटि नहीं हुई।

मैं सीए सेर्ट्स के बारे में जानकार नहीं हूं, और संदेह है कि मैंने जानबूझकर अतीत में कुछ स्व-हस्ताक्षरित प्रमाण पत्र जोड़े हैं। शायद दुर्घटना से, मुझे नहीं पता।

क्या कोई जानता है कि इसे कैसे ठीक करें? क्या वास्तव में मेरे सभी समारोहों के साथ नए सिरे से शुरुआत करने का कोई तरीका है? या किसी को भी पता नहीं है कि मैं कैसे पता लगाऊं कि यह स्व-हस्ताक्षरित प्रमाण पत्र कहां है, और फिर इसे कैसे निकालना है?

पुनश्च: मैं -k (aka --insecure) ध्वज का उपयोग नहीं करना चाहता। मैं इस काम को सुरक्षित तरीके से करना चाहता हूं।

जवाबों:


11

पिछले कुछ दिनों में इस पर शोध और काम करने के बाद मुझे यह काम करने के लिए मिला, और जवाब समाप्त हो गया बल्कि सरल रहा।

मुझे capath=/etc/ssl/certs/अपनी .curlrcफ़ाइल में सेट करने की आवश्यकता है ।

यह कमांड लाइन पर काम कर रहा कर्ल मिला। आगे आर में काम करने के लिए कर्ल प्राप्त करने के लिए (जहां मैंने पहली बार समस्या का सामना किया था) मुझे cacert=/etc/ssl/certs/ca-certificates.crtअपनी .curlrcफ़ाइल में पहले की तरह की आवश्यकता थी, अन्यथा यह देखने के लिए जारी रहा।/etc/pki/tls/certs/ca-bundle.crt

मुझे अभी भी पता नहीं है कि मैं स्व-हस्ताक्षरित प्रमाण पत्र के बारे में त्रुटि क्यों देख रहा था।

कुछ अन्य यादृच्छिक निष्कर्षों के आधार पर मैंने कर्ल वेबसाइट से एक प्रमाणपत्र भी डाउनलोड किया:

sudo wget http://curl.haxx.se/ca/cacert.pem

उसी certsनिर्देशिका में। cafileइस ओर इशारा करने के साथ ही काम किया। अंत में मैंने इसे वापस डाल दिया ca-certificates.crtऔर यह अभी भी काम करता है।

मुझे ठीक से समझ में नहीं आया कि यह क्यों काम किया या क्या चल रहा है, लेकिन इसका समाधान हो गया है।


9

कैफ़ील की मेरे लिए काम नहीं करता है (कर्ल 7.45.0) लेकिन कैसर्ट (- कैसर्ट विकल्प) करता है। मेरी .curlrc फ़ाइल:

capath=/etc/ssl/certs/
cacert=/etc/ssl/certs/ca-certificates.crt

1
इसने मेरे लिए Ubuntu 16.04 पर काम किया!
जोस्ट डोबकेन

0

हमने Ubuntu 14.04.5 में हमारे C ++ प्रोग्राम में से एक के साथ एक ही समस्या का सामना किया। .Curlrc विधि से लागू होने वाली नहीं थी।

इसे ca-certificate.crt से /etc/ssl/certs/ca-certports.crt पर डाउनलोड करके / etc / pki / tls / certs / निर्देशिका के तहत एक प्रतीकात्मक लिंक ca-bundle.crt बनाकर हल किया गया था ।

उम्मीद है की यह मदद करेगा!


0

कुछ समय के लिए शोध करने के बाद मुझे यह काम करने के लिए मिला, और जवाब समाप्त हो गया बल्कि एक सरल था। स्टेप वाइज करें

Step:1 Open terminal ctrl+alt+t
Step:2 cd /etc/ssl/certs/
Step:3 sudo wget http://curl.haxx.se/ca/cacert.pem 

चरण 3 सेरेम फ़ोल्डर में पेम फ़ाइल डाउनलोड करेगा

  Step 4: Check if .curlrc file is available in your home folder or not. 

.curlrc एक छिपी हुई फ़ाइल है। घर निर्देशिका में ctrl + h द्वारा जाँच करें। यदि वहाँ नहीं है तो टर्मिनल प्रकार पर

Step 5:  nano ~/.curlrc 
Step 6: Now paste the below lines in the open file
        capath=/etc/ssl/certs/
        cacert=/etc/ssl/certs/ca-certificates.crt
Step 7: Now save the file and do your things using curl command.

NB यहाँ मैंने नैनो संपादक का उपयोग किया है, लेकिन आप किसी भी संपादक का उपयोग कर सकते हैं।

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