RedHat पर cURL CA बंडल कैसे अपडेट करें?


38

मैं उन मुद्दों में भाग रहा हूं जहां सीए बंडल को मेरे संस्करण के साथ बंडल किया गया है जो पुराना है।

curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
More details here: http://curl.haxx.se/docs/sslcerts.html

प्रलेखन के माध्यम से पढ़ने से मुझे मदद नहीं मिली क्योंकि मुझे समझ नहीं आया कि मुझे क्या करना है या कैसे करना है। मैं RedHat चला रहा हूं और CA बंडल को अपडेट करने की आवश्यकता है। RedHat पर अपने CA बंडल को अपडेट करने के लिए मुझे क्या करने की आवश्यकता है?

जवाबों:


50

आरएचईएल 6 या उसके बाद के लिए , आपको अपडेट-सीए-ट्रस्ट का उपयोग करना चाहिए , जैसा कि नीचे दिए गए जवाब में लाजप वर्णन करता है।

--- फेडोरा, सेंटोस, रेडहैट के पुराने संस्करणों के लिए:

कर्ल का उपयोग कर रहा है सिस्टम-डिफॉल्ट CA बंडल को /etc/pki/tls/certs/ca-bundle.crt में संग्रहीत किया जाता है। इसे बदलने से पहले, आप उस फ़ाइल की एक प्रतिलिपि बनाएँ, ताकि ज़रूरत पड़ने पर आप सिस्टम डिफ़ॉल्ट को पुनर्स्थापित कर सकें। आप बस उस फ़ाइल में नए CA प्रमाणपत्र संलग्न कर सकते हैं, या आप पूरे बंडल को बदल सकते हैं।

क्या आप भी सोच रहे हैं कि प्रमाण पत्र कहां मिलेगा? मैं (और अन्य) curl.haxx.se/ca की सलाह देते हैं। एक पंक्ति में:

curl https://curl.haxx.se/ca/cacert.pem -o /etc/pki/tls/certs/ca-bundle.crt

फेडोरा कोर 2 स्थान है /usr/share/ssl/certs/ca-bundle.crt


यह अच्छा है, लेकिन मैं यह कैसे सुनिश्चित कर सकता हूं कि जो प्रमाणपत्र मैं जोड़ता हूं वह ca-bundle.crt के अगले अपडेट में खो नहीं जाएगा? क्या कोई जगह है जहां मैं नया डाल सकता हूं जहां यह स्वचालित रूप से शामिल होगा?
एंड्रयू शुल्मन

2006 के अनुसार, OpenSl अपग्रेड ca-bundle.crt फ़ाइल को प्रतिस्थापित नहीं करना चाहिए ( rhn.redhat.com/errata/RHSA-2006-0661.html देखें )। हालाँकि, यदि आपके पास एक और पैकेज स्थापित है, जैसे @mgorven द्वारा सुझाए गए ca- सर्टिफिकेट पैकेज, तो मुझे उम्मीद है कि यह मैन्युअल रूप से अधिलेखित हो जाएगा।
नाडा

36

आरएचईएल 6+ सिस्टम पर ऐसा करने का अनुशंसित तरीका अपडेट-सीए-ट्रस्ट टूल का उपयोग करना है , जो अब डिफ़ॉल्ट रूप से स्थापित है।

# cat /etc/pki/ca-trust/source/README 
This directory /etc/pki/ca-trust/source/ contains CA certificates and 
trust settings in the PEM file format. The trust settings found here will be
interpreted with a high priority - higher than the ones found in 
/usr/share/pki/ca-trust-source/.

=============================================================================
QUICK HELP: To add a certificate in the simple PEM or DER file formats to the
            list of CAs trusted on the system:

            Copy it to the
                    /etc/pki/ca-trust/source/anchors/
            subdirectory, and run the
                    update-ca-trust
            command.

            If your certificate is in the extended BEGIN TRUSTED file format,
            then place it into the main source/ directory instead.
=============================================================================

Please refer to the update-ca-trust(8) manual page for additional information

इसलिए, आपको केवल अपनी crt फ़ाइल को /etc/pki/ca-trust/source/anchors/उपकरण को चलाने और चलाने की आवश्यकता है। काम किया। यह करना सुरक्षित है, आपको कोई बैकअप करने की आवश्यकता नहीं है। पूर्ण मैनुअल पेज यहां पाया जा सकता है: https://www.mankier.com/8/update-ca-trust


नमस्ते, क्या यह आपके लिए काम करता है? मैंने सिर्फ access.redhat.com/solutions/1549003 से परिदृश्य का पालन करने की कोशिश की और यह मेरे लिए काम नहीं करता है।
किर्बी

6

आरएचईएल ca-certificatesपैकेज के हिस्से के रूप में मोज़िला सीए प्रमाणपत्र प्रदान करता है ( yumइसे स्थापित करें यदि यह पहले से स्थापित नहीं है)। इनका उपयोग करने के लिए CURL को बताने के लिए, --cacertजैसे पैरामीटर का उपयोग करें।

curl --cacert /etc/ssl/certs/ca-bundle.crt https://google.com/

मैंने कोशिश की yum install ca-certificatesऔर मिलाNo package ca-certificates available
एंड्रयू

1
RHEL6 में यह पैकेज है; मुझे लगता है कि आप एक पुराने संस्करण का उपयोग कर रहे हैं। दुर्भाग्य से सूची 2010 के बाद से नहीं बदली है, हमें फिर से रखने के लिए धन्यवाद।
डैन प्रिट्स

मैं एडब्ल्यूएस ईसी 2 पर आरएचईएल 7 का उपयोग कर रहा हूं, मैंने सिर्फ अपने पैकेज को अपग्रेड किया है ca-certificates.noarch 0:2014.1.98-70.0.el7_0- यह मेरी समस्या को दुर्भाग्य से हल नहीं करता है, लेकिन बस मैंने सोचा कि मैं आपकी जानकारी जोड़ दूंगा।
DuffJ

6

संभवतः रेडहैट का कौन सा संस्करण निर्भर करता है। आप पा सकते हैं कि वास्तव में कौन सा पैकेज फाइल को अपडेट करता है:

rpm -qf /etc/pki/tls/certs/ca-bundle.crt

मेरा परिणाम दिखा रहा था कि Opensl-0.9.8e-12.el5 को अद्यतन करने की आवश्यकता है।

यदि आपके वितरण में कोई अद्यतन प्रमाण पत्र नहीं है, तो आपको नाडा के जवाब के अनुसार, मैन्युअल रूप से अपडेट करना होगा।


6

डैन प्रिट्स की टिप्पणी के बाद से, Red Hat सर्पिल बंडल को समर्थित RHEL रिलीज़ के लिए अधिक बार अपडेट कर रहा है; आप इसे पैकेज चैंज में आसानी से देख सकते हैं। RHEL 6 के प्रमाणपत्र 2013 में दो बार और 2014 में दो बार अपडेट किए गए थे।

सभी आरएचईएल और संबंधित / क्लोन / व्युत्पन्न डिस्ट्रो एक बंडल फ़ाइल को प्रदान करते हैं /etc/pki/tls/certs/ca-bundle.crt, और एक ही फाइल पर /etc/pki/tls/cert.pem(पुराने डिस्ट्रोस के cert.pemलिए एक सिम्लिंक है ca-bundle.crt, नए डिस्ट्रोस पर दोनों एक फ़ाइल आउटपुट के लिए सीमलिंक हैं update-ca-trust)।

आरएचईएल 6 और नए में, बंडल 'सीए-सर्टिफिकेट' पैकेज का हिस्सा है। आरएचईएल 5 और इससे पहले यह 'ओपनसेल' पैकेज का हिस्सा है।

Https://rhn.redhat.com/errata/RHEA-2013-1596.html और किसी भी नए RHEL अपडेट के साथ RHEL 6 में , 'साझा सिस्टम प्रमाणपत्र' प्रणाली उपलब्ध है (आपको update-ca-trust enableइसे सक्षम करने के लिए चलना चाहिए ) और सबसे अच्छा विधि यह है कि lzap द्वारा दिया गया है। इस प्रणाली का एक लाभ यह है कि यह NSS और GnuTLS- आधारित अनुप्रयोगों के साथ-साथ OpenSSL- आधारित लोगों के लिए भी काम करता है। ध्यान दें कि आप किसी प्रमाणपत्र को निर्देशिका में रखकर भी अविश्वास कर सकते हैं /etc/pki/ca-trust/source/blacklist/

आरएचईएल 5 और पुराने (और आरएचईएल 6 में, यदि आप नई प्रणाली का उपयोग नहीं करना चाहते हैं) तो आप अपने पीईएम फॉर्मेट की गई सर्टिफिकेट फाइलों को.pem / etc / pki / tls / certs और रनिंग c_rehash( एक्सटेंशन) में एक्सटेंशन के साथ रखकर अतिरिक्त CA पर भरोसा कर सकते हैं (इसके लिए भी आवश्यकता हो सकती है) yum install /usr/bin/c_rehash)। यह केवल सॉफ्टवेयर के लिए काम करेगा जो ओपनएसएसएल के डिफॉल्ट ट्रस्ट स्टोर्स का उपयोग करता है। यह बंडल फ़ाइल को संपादित करने या बदलने से बेहतर है क्योंकि यह आपको बंडल फ़ाइल के लिए आधिकारिक अपडेट प्राप्त करना जारी रखने की अनुमति देता है।

सॉफ़्टवेयर जो बंडल फ़ाइल स्थानों में से एक का उपयोग करता है सीधे (OpenSSL को सिस्टम डिफ़ॉल्ट ट्रस्ट स्टोर का उपयोग करने के लिए कहने के बजाय) परिवर्तन का सम्मान नहीं करेगा; यदि आपके पास ऐसा सॉफ़्टवेयर है तो आप बंडल फ़ाइल को संपादित कर रहे हैं (या सॉफ़्टवेयर में सुधार कर रहे हैं)। सॉफ्टवेयर जो ओपनएसएसएल का उपयोग बिल्कुल नहीं करता है, वह अतिरिक्त प्रमाणपत्र का सम्मान नहीं करेगा।


3

मुझे बस एक पुराने RHEL5 बॉक्स पर ऐसा करना था। मैंने कैच 22 को मारा ... कर्ल https डाउनलोड को अस्वीकार कर देगा क्योंकि कर्ल पर प्रमाण पत्र बहुत पुराने थे।

मैंने https डाउनलोड को मजबूर करने के लिए कर्ल के --insecure विकल्प का उपयोग किया। (हाँ, मुझे पता है ... यह "असुरक्षित" है।)

कर्ल https://curl.haxx.se/ca/cacert.pem --insecure -o /etc/pki/tls/certs/ca-bundle.crt


1

के लिए RHEL 6 , मैं अद्यतन करने और रेड हैट से नवीनतम CA प्रमाणपत्रों को पैकेज फिर से स्थापित करके इसे ठीक करने में सक्षम था:

sudo yum update ca-certificates
sudo yum reinstall ca-certificates

(मेरे मामले में, यह नए "लेट्स एनक्रिप्ट अथॉरिटी एक्स 3" पर हस्ताक्षर करने के लिए प्रमाण पत्र पर भरोसा करने की अनुमति देने के लिए पर्याप्त था।)


कमांड ने मेरे लिए काम किया (CentOS 6) लेकिन मेरी समस्या का समाधान नहीं किया ("DigiCert SHA2 Secure Server CA" द्वारा जारी किए गए प्रमाण के साथ)
rinogo
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.