Ubuntu 10.04 / CURL: मैं CA बंडल को कैसे ठीक / अपडेट करूं?


17

मैंने हाल ही में हमारे सर्वर को 8.04 से 10.04 तक और इसके साथ सभी सॉफ्टवेयर को अपग्रेड किया है।

मैंने जो ऑनलाइन पाया है, उससे लगता है कि CURL के नए संस्करण में CA बंडल शामिल नहीं है, और, परिणामस्वरूप, यह सत्यापित करने में विफल रहता है कि जिस सर्वर से आप कनेक्ट हो रहे हैं उसका प्रमाण पत्र किसी मान्य प्राधिकारी द्वारा हस्ताक्षरित है। ।

वास्तविक त्रुटि यह है:

CURL त्रुटि: SSL प्रमाणपत्र समस्या, सत्यापित करें कि CA प्रमाणपत्र ठीक है।
विवरण: त्रुटि: 14090086: एसएसएल दिनचर्या: SSL3_GET_SERVER_CERTIFICATE:
प्रमाणपत्र सत्यापन विफल रहा 

कुछ तालिकाओं में मैंने सुझाव दिया है कि आप मैन्युअल रूप से CA फ़ाइल निर्दिष्ट करें या CURL को कॉल करने पर एक विकल्प सेट करके चेक को पूरी तरह से अक्षम करें, लेकिन मैं प्रत्येक एप्लिकेशन के CURL कॉल को संशोधित करने के बजाय विश्व स्तर पर समस्या को ठीक करूंगा।

क्या CURL की CA समस्या सर्वर-वाइड को ठीक करने का एक तरीका है ताकि सभी मौजूदा एप्लिकेशन कोड काम करें जो कि संशोधित किए जाने की आवश्यकता के बिना है?

जवाबों:


17

मुझे वही परेशानी हो रही है और एक बिट के आसपास झाँकने के बाद पाया गया है कि आप कर्ल देव साइट से सीधे उबंटू पर कर्ल के लिए तैयार सीए-सेरट्स का पैकेज डाउनलोड कर सकते हैं।

cd /etc/ssl/certs
sudo wget http://curl.haxx.se/ca/cacert.pem

अब कर्ल सबसे अप-टू-डेट बंडल का उपयोग करता है और आप जाने के लिए अच्छे हैं।


1
इसके बाद मुझे इसके साथ अपडेट करना था: अपडेट-सीए-सर्टिफिकेट -f
अनाज

9

उबंटू के साथ इसी तरह की समस्या थी 12.04 कमांड लाइन से कर्ल चलाने के लिए कमांड लाइन उपकरण को प्राप्त करने के लिए जो कि जीथब में थे। मैंने पाया कि क्या मैंने कमांड-लाइन को इस तरह चलाया है:

curl https://raw.github.com/timkay/aws/master/aws -o aws --cacert /etc/ssl/certs/ca-certificates.crt

यह काम करेगा। लेकिन CURL_CA_BUNDLE परिवेश चर सेट करने का प्रयास कर रहा हूं ताकि मैं "कैसर्ट" तर्क से बच सकूं। अंतत: सीए-सर्टिफिकेट को अपडेट करने से समस्या का समाधान हो गया:

sudo update-ca-certificates

एक साइड नोट के रूप में, एक बिंदु पर मैंने कर्ल से हार्ड-सीट्स अपडेट किए। XXX.se जो समस्या का समाधान नहीं करता था, लेकिन संबंधित हो सकता है। (से sudo wget http://curl.haxx.se/ca/cacert.pemभागो /etc/ssl/certs)।


मेरे लिए लिंक 404'd। यह काम करता है: curl.haxx.se/ca/cacert.pem
dave1010

2
हम्म। लगता है कि HTTPS से अधिक नहीं की तरह एक फ़ाइल युक्त चटकी लाने के लिए ।
मैथ्यू Schinckel

5

आमतौर पर, सॉफ्टवेयर जिसमें एक अद्वितीय कार्यान्वयन नहीं होता है और ओपनएसएसएल के खिलाफ संकलित किया जाता है, सिस्टम-वाइड सीए-बंडल /usr/share/ssl/certs। संदर्भ में अक्सर स्थित होगा ।

उबंटू में स्थान भिन्न हो सकता है लेकिन ओपनएसएसएल पैकेज में सीए-बंडल फ़ाइल शामिल होनी चाहिए।

CURL में प्रमाणपत्रों की पुष्टि करने के लिए विभिन्न प्रकार के विकल्प हैं।

  • CURL_CA_BUNDLECa-बंडल फ़ाइल का स्थान के लिए वातावरण चर।
  • --capathआपको वह निर्देशिका निर्दिष्ट करने की अनुमति देता है जहां CA प्रमाणपत्र स्थित हैं। (ओवरहाइड्स CURL_CA_BUNDLE)
  • --cacert आपको CA प्रमाणपत्र फ़ाइल निर्दिष्ट करने की अनुमति देता है।

मेरे CentOS सर्वर पर, मैं CURL का उपयोग करने वाले ca- बंडल पथ की पहचान करने के लिए निम्नलिखित चला सकता हूं:

$ curl-config --ca
/usr/share/ssl/certs/ca-bundle.crt

1
ओपन एसएसएल स्थापित है। मेरे पास / etc / ssl / certs / में "ca-certificate.crt" फ़ाइल है, जो एक साथ सम्‍मिलित प्रमाणपत्रों का एक गुच्छा जैसा दिखता है, लेकिन मुझे लगता है कि CURL इसे नहीं देख रहा है? क्या CURL में CA- बंडल के लिए कॉन्फ़िगरेशन सेटिंग है?
निक

क्या आप सुनिश्चित हैं कि यह उस प्रकार का प्रमाणपत्र नहीं है जिसे वह सत्यापित करने का प्रयास कर रहा है? नई प्रमाणपत्र प्रमाणपत्र तकनीक जैसे विस्तारित सत्यापन सीट्स में अक्सर को-बंडल अपडेट की आवश्यकता होती है, क्योंकि रूट सीट्स अपेक्षाकृत नए होते हैं। मेरा आगामी संपादन भी देखें।
वार्नर

कर्ल-विन्यास उबंटू पर एक मान्य कमांड नहीं लगता है। मैं CURL_CA_BUNDLE कैसे सेट करूं?
निक

ऐसा लगता है कि यह libcurl3-openssl-devत्वरित इंटरनेट खोज के आधार पर पैकेज का हिस्सा है । CURL_CA_BUNDLEसिर्फ एक पर्यावरण चर है। बैश में, CURL_CA_BUNDLE=/path/to/file
वार्नर

ठीक है, पैकेज स्थापित किया गया है, लेकिन "कर्ल-कॉन्फिग - एका" एक खाली लाइन का उत्पादन करता है। मैंने 'CURL_CA_BUNDLE = "/ etc / ssl / certs / ca-certificate.crt"' का उपयोग करके चर सेट करने का प्रयास किया। लेकिन "कर्ल-कॉन्फिग - एके" अभी भी बाद में एक खाली लाइन पैदा करता है।
निक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.