HTTPS url तक पहुँचने का प्रयास करते हुए मैं cURL का उपयोग करते हुए प्रमाणपत्रों के साथ कैसे व्यवहार करता हूँ?


187

मुझे कर्ल का उपयोग करके निम्न त्रुटि मिल रही है:

कर्ल: (77) त्रुटि सेटिंग प्रमाण पत्र सत्यापित स्थान:
  CAfile: /etc/ssl/certs/ca-cert पत्र.crt
  CApath: कोई नहीं

मैं यह प्रमाण पत्र सत्यापित स्थानों को कैसे सेट करूँ? धन्यवाद।


2
आप किस ओएस / डिस्ट्रो पर हैं? आपको सीए-सर्टिफिकेट पैकेज स्थापित करना चाहिए (कि इसे डेबियन / ubuntu पर कहा जाता है)।
igorw

40
भविष्य के संदर्भ के लिए, मैंने पहले ही ca-certificatesस्थापित कर दिया था लेकिन त्रुटि बनी रही। समस्या यह है कि मेरी प्रमाण पत्र में स्थित थे था /etc/ssl/certs/ca-certificates.crtबजाय /etc/pki/tls/certs/ca-bundle.crt, तो मैं बस पर्यावरण चर सेट करना पड़ा CURL_CA_BUNDLEसही पथ के लिए।
रॉबर्ट स्मिथ

13
ठंडा! जब मैं सेट करता हूं तो यह मेरे लिए काम करता है export CURL_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt
मंगल १

जवाबों:


82

यह त्रुटि एक से संबंधित है गुम पैकेज : ca-certificates। इसे स्थापित करो।

उबंटू लिनक्स (और इसी तरह के डिस्ट्रो) में:

# apt-get install ca-certificates

Apt- Cyg के माध्यम से CygWin में

# apt-cyg install ca-certificates

आर्क लिनक्स (रास्पबेरी पाई) में

# pacman -S ca-certificates

प्रलेखन बताता है:

इस पैकेज में SSL प्रमाणपत्रों की प्रामाणिकता के लिए SSL- आधारित अनुप्रयोगों की अनुमति देने के लिए CA प्रमाणपत्रों की PEM फाइलें शामिल हैं।

जैसा कि देखा गया: डेबियन - निचोड़ में पैकेज सीए-सर्टिफिकेट का विवरण


97
सीए-सर्टिफिकेट पहले से ही सबसे नया संस्करण है, फिर भी मुझे अभी भी त्रुटि मिल रही है
पास्टर बोन्स

2
यदि आप कर्ल और raw.github.com का उपयोग करके अनुशंसित विधि के माध्यम से apt-cyg को स्थापित करने का प्रयास करते हैं, तो निश्चित रूप से आपको यह त्रुटि मिलेगी
10gistic

11
आर्क लिनक्स पर, आपको आवश्यकता भी हो सकती है pacman -S ca-certificates-utils। मैंने किया।
मार्क ग्रिम्स

8
यह पैकेज पहले से स्थापित है। यह उत्तर सहायक नहीं है।
जिम्मीजम्स

9
@PastorBones मेरे पास एक ही मुद्दा था कि पैकेज पहले से ही नवीनतम था, मुझे लगता है कि यह फिर भी भ्रष्ट हो गया था इसलिए sudo apt install --reinstall ca-certificatesपैकेज को फिर से स्थापित किया और त्रुटियों को हल किया जो मैं देख रहा था
विल 9

153

मेरे पास कै-सर्टिफिकेट का नवीनतम संस्करण भी था, लेकिन अभी भी त्रुटि हो रही थी:

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

मुद्दा यह था कि कर्ल को उम्मीद थी कि प्रमाणपत्र रास्ते में होगा, /etc/pki/tls/certs/ca-bundle.crtलेकिन वह नहीं मिल सका क्योंकि वह रास्ते में था /etc/ssl/certs/ca-certificates.crt

मेरे प्रमाण पत्र को चलकर अपेक्षित गंतव्य तक पहुँचाना

sudo cp /etc/ssl/certs/ca-certificates.crt /etc/pki/tls/certs/ca-bundle.crt

मेरे लिए काम किया। यदि आपके पास रनिंग मौजूद नहीं है, तो आपको लक्ष्य गंतव्य के लिए फ़ोल्डर बनाने की आवश्यकता होगी

sudo mkdir -p /etc/pki/tls/certs

यदि आवश्यक हो, तो गंतव्य फ़ाइल का नाम कर्ल द्वारा अपेक्षित पथ से मेल खाने के लिए उपरोक्त आदेश को संशोधित करें, अर्थात /etc/pki/tls/certs/ca-bundle.crtअपनी त्रुटि संदेश में "CAfile:" के बाद पथ से प्रतिस्थापित करें।


31
यदि आप ln -sइसे हर बार अपडेट करने के बाद फिर से कॉपी नहीं करना चाहते हैं तो आप एक प्रतीकात्मक लिंक भी बना सकते हैं ।
स्टारबिम्रेनबोलाब्स

4
rescuetimeफेडोरा 25 पर ऐप के लिए भी यही sudo ln -s /etc/pki/tls/certs/ca-bundle.crt /etc/pki/tls/certs/ca-certificates.crtसमस्या थी। ( CURL_CA_BUNDLEenv var ने काम नहीं किया)
GabLeRoux

मेरे ubuntu पर इस मुद्दे को तय sudo ln -s /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.pem:। मैं वास्तव में हो रहा था The repository ... does not have a Release fileजो कि लापता प्रमाण पत्र ( Could not load certificates from ...) के कारण था ।
एक

84

इसको अपने अंदर डालो .bashrc

# fix CURL certificates path
export CURL_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt

(रॉबर्ट से टिप्पणी देखें)


8
एक ऐसी विधि प्रदान करने के लिए धन्यवाद, जिसके लिए मुझे सिस्टम फ़ाइलों को हाथ से मसलने की आवश्यकता नहीं है, लेकिन फिर भी प्रमाण पत्र का उपयोग करने की सुरक्षा बनी रहती है!
स्टीफन जॉनसन

धन्यवाद। इसने मेरी इसी तरह की समस्या को pyenv & curl से हल किया। मैं Ubuntu 14.04 का उपयोग कर रहा था और पहले से ही सीए-सर्टिफिकेट स्थापित था।
दाविद

यह दृष्टिकोण भी xonsh (जोड़ने के साथ काम करता $CURL_CA_BUNDLE = "/etc/ssl/certs/ca-certificates.crt"करने के लिए .xonshrc)।
m00am

बस के मामले में: इस का एक लाइनर संस्करण:CURL_CA_BUNDLE=/path/to/bundle.crt curl http://example.com
जमैथ्यू

30

~/.curlrcनिम्नलिखित सामग्री के साथ एक फ़ाइल बनाएँ

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

1
सबसे अच्छा जवाब, इसने मेरे लिए लिनक्स मिंट 17
सैंटियागो

मैक पर, यह में निम्नलिखित के साथ काम किया~/.curlrc cacert=/etc/openssl/cert.pem
amirathi

21

त्रुटि के आसपास पाने का सबसे तेज़ तरीका आपके कर्ल अनुरोध में कहीं-न-कहीं विकल्प जोड़ा गया है। वह विकल्प "एसएसटी के बिना कनेक्शन के कनेक्शन की अनुमति देता है।" (कर्ल से --help)

ध्यान रखें कि इसका मतलब यह हो सकता है कि आप उस समापन बिंदु पर बात नहीं कर रहे हैं जिसके बारे में आप सोचते हैं कि आप हैं, क्योंकि वे एक सीए द्वारा किए गए प्रमाणपत्र पर हस्ताक्षर नहीं कर रहे हैं।

उदाहरण के लिए:

$ curl -o /usr/bin/apt-cyg https://raw.github.com/cfg/apt-cyg/master/apt-cyg

मुझे निम्नलिखित त्रुटि प्रतिक्रिया दी:

curl: (77) error setting certificate verify locations:
  CAfile: /usr/ssl/certs/ca-bundle.crt
  CApath: none

मैंने -k जोड़ा:

curl -o /usr/bin/apt-cyg https://raw.github.com/cfg/apt-cyg/master/apt-cyg -k

और कोई त्रुटि संदेश नहीं। एक बोनस के रूप में, अब मेरे पास apt-cyg स्थापित है। और सीए-सर्टिफिकेट।


10
यह त्रुटि के आसपास हो सकता है, लेकिन यह "सुरक्षित" कनेक्शन को असुरक्षित बनाता है।
टिम

1
ज़रुरी नहीं। जहां तक ​​मुझे पता है, आप सुरक्षित कनेक्शन के एन्क्रिप्शन को बाईपास नहीं कर सकते हैं, इसलिए यह अभी भी एन्क्रिप्टेड है और केवल एक समापन बिंदु पर जा रहा है। अगर मैं गलत हूं, तो कोई मुझे सही करेगा, लेकिन आपके द्वारा चलाया जाने वाला एकमात्र जोखिम यह है कि आप एक मध्य-आक्रमण के शिकार हो सकते हैं। यदि आप कर्ल का उपयोग कर रहे हैं तब भी जोखिम की संभावना नहीं है।
10gistic

18
हाँ सच। "-K" विकल्प "--insecure" के लिए आशुलिपि है। यदि आपके पास मानव-मध्य है तो आपको क्या लगता है कि वह आपके डेटा के साथ क्या कर रहा है? स्पॉयलर अलर्ट: वह इसे डिक्रिप्ट कर रहा है, इसे चोरी कर रहा है, और संभवतः इसे संशोधित करके असुरक्षित स्ट्रीम में वापस इंजेक्ट कर रहा है। मैन पेज से सीधे: "-k, --insecure (एसएसएल) यह विकल्प स्पष्ट रूप से कर्ल को" असुरक्षित "एसएसएल कनेक्शन और ट्रांसफर करने की अनुमति देता है। सभी एसएसएल कनेक्शनों को डिफ़ॉल्ट रूप से स्थापित सीए सर्टिफिकेट बंडल का उपयोग करके सुरक्षित बनाने का प्रयास किया जाता है। यह सभी कनेक्शनों को "असुरक्षित" माना जाता है, जब तक -k, --insecure का उपयोग नहीं किया जाता है। "
टिम

2
यदि आपको SSL की आवश्यकता है तो आपको गोपनीयता और सत्यापन की आवश्यकता है - -kध्वज का अर्थ है कि आप सत्यापन खो रहे हैं । आपकी आवश्यकताओं के आधार पर यह स्वीकार्य हो सकता है। MITM गैर-तुच्छ हमले हैं यदि आप अपने नेटवर्क और सर्वर से संवाद कर रहे हैं, तो आप इंटरलोपर्स से सुरक्षित हैं (क्या आप उस धारणा को बना सकते हैं?)। आपके डेटा के प्रकार के आधार पर जोखिम बढ़ जाता है (सोर्सकोड और सीट्स छवियों की तुलना में जोखिमपूर्ण हैं)। आप स्थानांतरण (चेकसम आदि) के बाद डेटा की अखंडता को सत्यापित कर सकते हैं, लेकिन अब आप उस चेकसम चैनल पर अपना भरोसा शिफ्ट कर रहे हैं। अंत -kमें आपको काफी अधिक काम मिलता है।
मार्क फॉक्स

तो क्या इसका मतलब यह है कि अगर मैं एक स्व-हस्ताक्षरित प्रमाण पत्र का उपयोग कर रहा हूं। मुझे विकल्प -k का उपयोग करना चाहिए। जैसा कि स्व हस्ताक्षरित प्रमाण पत्र को सत्यापित करना संभव नहीं हो सकता है?
लाइनस

15

@ सरोवर सही है। यह सभी एनाकोंडा उपयोगकर्ताओं को प्रभावित करता है , नीचे त्रुटि के साथ
curl: (77) error setting certificate verify locations: CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: none

वर्कअराउंड डिफ़ॉल्ट सिस्टम कर्ल का उपयोग करना और पहले से तैयार एनाकोंडा PATHचर के साथ खिलवाड़ करने से बचना है । आप या तो यह कर सकते हैं

  1. एनाकोंडा कर्ल बाइनरी का नाम दें :)
    mv /path/to/anaconda/bin/curl /path/to/anaconda/bin/curl_anaconda

  2. या एनाकोंडा कर्ल को हटा दें
    conda remove curl

$ which curl /usr/bin/curl

[०] एनाकोंडा उबटन कर्ल गितुब मुद्दा https://github.com/conda/conda-recipes/issa/5/2


अच्छा लगता है, मुझे नहीं पता था कि एनाकोंडा मेरे रास्ते की मिसाल चुरा रहा था। एक बार जब मैंने curlपूर्ण पथ/usr/bin/curl
jxramos

इससे बहुत मदद मिली! धन्यवाद।
शबाब करीम

12

से $ man curl:

--cert-type <type>
    (SSL) Tells curl what certificate type the provided  certificate
    is in. PEM, DER and ENG are recognized types.  If not specified,
    PEM is assumed.

    If this option is used several times, the last one will be used.

--cacert <CA certificate>
    (SSL) Tells curl to use the specified certificate file to verify
    the peer. The file may contain  multiple  CA  certificates.  The
    certificate(s)  must be in PEM format. Normally curl is built to
    use a default file for this, so this option is typically used to
    alter that default file.

7

Windows पर XAMPP पर चलने वाले PHP कोड के लिए मैंने पाया कि मुझे नीचे शामिल करने के लिए php.ini को संपादित करना होगा

[curl]
; A default value for the CURLOPT_CAINFO option. This is required to be an
; absolute path.
curl.cainfo = curl-ca-bundle.crt

और फिर एक फाइल https://curl.haxx.se/ca/cacert.pem और नाम बदलकर कर्ल-सीए-बंडल-कॉपी पर रखें और इसे \ xampp पथ के नीचे रखें (मुझे कर्ल नहीं मिल सका। । मुझे यह भी पता चला कि CURL साइट पर CAbundle उस सुदूर साइट के लिए पर्याप्त नहीं था जिसे मैं कनेक्ट कर रहा था, इसलिए उस एक का उपयोग किया गया था जो पहले से संकलित विंडोज वर्जन 7.47.1 के साथ http://winampplugins.co.uk पर है / कर्ल /


विंडोज़ पर आप php से पहले "xampp" भी जोड़ सकते हैं जैसे: curl.cainfo = "C: \ xampp \ php \ extras \ cacert.pem"
रयान स्टेन

7

मेरे साथ भी ठीक यही समस्या थी। जैसा कि यह पता चला है, मेरी /etc/ssl/certs/ca-certificates.crtफ़ाइल विकृत थी। अंतिम प्रविष्टि ने कुछ इस तरह दिखाया:

-----BEGIN CERTIFICATE-----
MIIEDTCCAvWgAwIBAgIJAN..lots of certificate text....AwIBAgIJAN-----END CERTIFICATE-----

पहले एक नई पंक्ति जोड़ने के बाद -----END CERTIFICATE-----, कर्ल प्रमाणपत्र फ़ाइल को संभालने में सक्षम था।

यह पता लगाना बहुत कष्टप्रद था क्योंकि मेरी update-ca-certificatesआज्ञा ने मुझे कोई चेतावनी नहीं दी।

यह कर्ल की एक संस्करण विशिष्ट समस्या हो सकती है या नहीं भी हो सकती है, इसलिए यहाँ मेरा संस्करण है, बस पूर्णता के लिए:

curl --version
# curl 7.51.0 (x86_64-alpine-linux-musl) libcurl/7.51.0 OpenSSL/1.0.2j zlib/1.2.8 libssh2/1.7.0
# Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp 
# Features: IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP UnixSockets 

6

इसने मेरे लिए काम किया

sudo apt-get install ca-certificates

उसके बाद प्रमाणपत्र फ़ोल्डर में जाएं

sudo cd /etc/ssl/certs

उसके बाद आप ca-certificate.crt फ़ाइल को इसमें कॉपी करें /etc/pki/tls/certs

sudo cp ca-certificates.crt /etc/pki/tls/certs

अगर कोई tls / certs फ़ोल्डर नहीं है: एक बनाएँ और chmod 777 -R folderNAME का उपयोग करके अनुमतियाँ बदलें


1
मैंने यह कोशिश की, लेकिन यह मेरे लिए काम नहीं किया और मुझे अभी भी वही त्रुटि मिलती है। कोई विचार ?
अनिरुद्ध

6

इस समस्या को ठीक करने का एक अन्य विकल्प प्रमाणपत्र सत्यापन को अक्षम करना है:

echo insecure >> ~/.curlrc

1
वर्कअराउंड, लेकिन यह कर्ल सर्टिफिकेट के साथ बहुत समय के बाद मेरी मदद करता है। धन्यवाद।
। गोल

4

कर्ल SSL"बंडल" का उपयोग करके डिफ़ॉल्ट रूप से प्रमाणपत्र सत्यापन करता हैCertificate Authority (CA)सार्वजनिक कुंजी (CA certs) के । डिफ़ॉल्ट बंडल को कर्ल-सीए-बंडल नाम दिया गया है; --cacert विकल्प का उपयोग करके आप एक वैकल्पिक फ़ाइल निर्दिष्ट कर सकते हैं।

यदि यह HTTPSसर्वर बंडल में दर्शाए गए CA द्वारा हस्ताक्षरित प्रमाण पत्र का उपयोग करता है, तो प्रमाणपत्र सत्यापन संभवतः प्रमाणपत्र के साथ एक समस्या के कारण विफल हो गया (यह समाप्त हो सकता है, या नाम URL में डोमेन नाम से मेल नहीं खा सकता है)।

यदि आप प्रमाणपत्र के कर्ल सत्यापन को बंद करना चाहते हैं, तो -k (या --insecure) विकल्प का उपयोग करें ।

उदाहरण के लिए

curl --insecure http://........

3
बस एक तरफ कि "स्रोत पर भरोसा करना" यहां बहुत अप्रासंगिक है, क्योंकि सीए के खिलाफ प्रमाण को ठीक से सत्यापित किए बिना, आपको पता नहीं है कि "स्रोत" कौन है।
जेफ एलन ने


3

बस फ़ोल्डर्स बनाएँ, जो आपके सिस्टम में गायब है ..

/ Etc / PKI / TLS / प्रमाणपत्र /

और निम्न कमांड का उपयोग करके फ़ाइल बनाएं,

sudo apt-get install सीए-सर्टिफिकेट

और फिर गंतव्य फ़ोल्डर में प्रमाणपत्र को कॉपी और पेस्ट करें, जो आपकी त्रुटि में दिखाई दे रहा है .. मेरा " with message 'error setting certificate verify locations: CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: none' in" था सुनिश्चित करें कि आप फ़ाइल को त्रुटि में वर्णित सटीक स्थान पर पेस्ट करें। पेस्ट को कॉपी करने के लिए निम्न कमांड का उपयोग करें।

sudo cp /etc/ssl/certs/ca-certports.crt/etc/pki/tls/certs/ca-bundle.crt

फिक्स्ड।


किसी भी शीर्ष उत्तर ने मेरे लिए काम नहीं किया लेकिन यह किया!
प्रचेती प्रकाश प्रभु

2

इसकी कीमत क्या है, इसके लिए जाँच which curlमहत्वपूर्ण है।

मेरे द्वारा साझा की गई मशीन पर एक उपयोगकर्ता यह त्रुटि प्राप्त कर रहा था। लेकिन कारण यह निकला क्योंकि उन्होंने एनाकोंडा ( http://continuum.io ) स्थापित किया था । ऐसा करने से एनाकोंडा के द्विआधारी पथ को मानक से पहले रखा गया है $PATH, और यह अपने स्वयं के curlद्विआधारी के साथ आता है , जिसे इस उबंटू मशीन पर स्थापित डिफ़ॉल्ट सीट्स को खोजने में परेशानी हुई थी ।


1
मैं which -a curlउपलब्ध सब कुछ देखने के लिए जाँच करने की सलाह देता हूं , और निश्चित रूप से यह ध्यान रखना चाहिए कि कौन सा शीर्ष पर आता है।
jxramos

2

अगर किसी को अभी भी परेशानी हो रही है, तो यह कोशिश करें, यह मेरे लिए काम करता है। अपनी /etc/ssl/certs/निर्देशिका में फ़ाइलों को हटाएं और फिर ca- प्रमाणपत्रों को पुनर्स्थापित करें:

sudo apt install ca-certificates --reinstall

जब मैंने Linuxbrew को स्थापित करने की कोशिश की तो यह किया।


1
इससे मुझे मदद मिली लेकिन मैंने अपनी मशीन पर फाइलें नहीं हटाईं। बस साधारण कमांड चलाया और कर्ल ने काम करना शुरू कर दिया।
जोसेफ

1

यदि आप linux में macOS या linuxbrew पर homebrew का उपयोग कर रहे हैं, तो इस पृष्ठ से निम्नलिखित चरणों के साथ opensslऔर फिर से स्थापित करने का प्रयास curlकरें ।

यह त्रुटि संदेश इंगित करता है कि कर्ल ओपनसेल का उपयोग करके एक सुरक्षित कनेक्शन स्थापित करने में सक्षम नहीं है। Opensl का पुनर्स्थापना समस्या को ठीक करना चाहिए। किसी भी आवश्यक फ़ाइल को डाउनलोड करने के लिए कर्ल और गिट दोनों के लिए असुरक्षित कनेक्शन का उपयोग अस्थायी रूप से करने के लिए, रन करें:

echo insecure >> ~/.curlrc
git config --global http.sslVerify false

फिर, ओपनसेल और कर्ल को इंस्टॉल या फिर से इंस्टॉल करें:

HOMEBREW_CURLRC=1 brew reinstall openssl curl

अंत में, कर्ल और गिट का उपयोग करने के लिए सुरक्षा परिवर्तनों को पूर्ववत करें फिर से सुरक्षित कनेक्शन का उपयोग करें:

sed -i '/^insecure$/d' ~/.curlrc
git config --global http.sslVerify true

परिणाम को सत्यापित करने के लिए आपको एक नया शेल सत्र शुरू करने की आवश्यकता हो सकती है

curl -v https://github.com # or any other https urls.

यदि यह आउटपुट में निम्न आउटपुट दिखाता है, तो समस्या को हल किया जाना चाहिए!

* successfully set certificate verify locations:
*   CAfile: /usr/local/etc/openssl/cert.pem
    CApath: /usr/local/etc/openssl/certs

संदर्भ:


घंटों की कोशिश के बाद। इससे मैं बच गया। मैकोस के लिए सही समाधान अंत में। आपका बहुत बहुत धन्यवाद! :)
मर्तब

1

मुझे एक ही समस्या मिली है: मैं एक अल्पाइन आधारित डॉकटर छवि बना रहा हूं, और जब मैं अपने संगठन की एक वेबसाइट को कर्ल करना चाहता हूं, तो यह त्रुटि दिखाई देती है। इसे हल करने के लिए, मुझे अपनी कंपनी का CA प्रमाण पत्र प्राप्त करना होगा, फिर, मुझे इसे अपनी छवि के CA certs में जोड़ना होगा।

सीए प्रमाण पत्र प्राप्त करें

वेबसाइट से संबंधित प्रमाणपत्र प्राप्त करने के लिए OpenSSL का उपयोग करें:

openssl s_client -showcerts -servername my.company.website.org -connect my.company.website.org:443

यह कुछ इस तरह का उत्पादन करेगा:

CONNECTED(00000005)
depth=2 CN = UbisoftRootCA
verify error:num=19:self signed certificate in certificate chain
...
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
... 
-----END CERTIFICATE-----
...

अंतिम प्रमाणपत्र प्राप्त करें ( -----BEGIN CERTIFICATE-----और
-----END CERTIFICATE-----शामिल मार्कअप के बीच की सामग्री ) और इसे एक फ़ाइल में सहेजें (mycompanyRootCA.cn उदाहरण के लिए)

अपनी छवि बनाएं

फिर, जब आप अल्पाइन से अपनी डॉक छवि बनाएंगे, तो निम्न कार्य करें:

FROM alpine
RUN apk add ca-certificates curl
COPY mycompanyRootCA.crt  /usr/local/share/ca-certificates/mycompanyRootCA.crt
RUN update-ca-certificates

अब आपकी छवि ठीक से काम करेगी! \ O /


1

बस यह समाधान मेरे लिए पूरी तरह से काम करता है।

echo 'cacert=/etc/ssl/certs/ca-certificates.crt' > ~/.curlrc

इसका हल मुझे यहां से मिला


0

त्रुटि PKI निर्देशिका में SSL श्रृंखला प्रमाणपत्र फ़ाइलों के दूषित या अनुपलब्ध होने के कारण है। आपको यह सुनिश्चित करना होगा कि निम्न चरणों में फाइलें सीए-बंडल बनायें: आपके कंसोल / टर्मिनल में:

mkdir /usr/src/ca-certificates && cd /usr/src/ca-certificates

इस साइट को दर्ज करें: https://rpmfind.net/linux/rpm2html/search.php?query=ca-certports , SO के लिए अपना सीए-सर्टिफिकेट प्राप्त करें। Url में डाउनलोड और पेस्ट का url कॉपी करें: wget your_url_donwload_ca-ceritificated.rpm अब, yout rpm स्थापित करें:

rpm2cpio your_url_donwload_ca-ceritificated.rpm | cpio -idmv

अब अपनी सेवा को पुनः आरंभ करें: मेरा उदाहरण यह कमांड:

sudo service2 httpd restart

0

मेरे लिए ठीक काम करने वाले git bash में कमांड का पालन करें

git config --global http.sslverify "false"


0

मुझे यह फिक्स आसान और सुरक्षित फिक्स लगा। इसमें php.iniफ़ाइल में दो मानों का पथ बदलना शामिल है । यहां दिए गए निर्देशों का पालन करें: https://ourcodeworld.com/articles/read/196/xampp-wampp-php-ssl-certificate-error-unable-to-get-local-issuer-certificate


0

Bellow मुद्दों को तय करने के लिए चरणों का वर्णन करते हैं।
1. पता लगाएँ कि फ़ाइल परिभाषित url पर मौजूद है।
2. यदि नहीं तो url से फाइल डाउनलोड करें। https://curl.haxx.se/ca/cacert.pem
3. php.ini फ़ाइल पर फ़ाइल को परिभाषित पथ में कॉपी और पेस्ट करें।
4. अपाचे सेवा को फिर से शुरू करें।


0

मुझे यह समस्या थी और यह पता चला कि CURL का मेरा संस्करण डीईआर-एनकोडेड सर्टिफिकेट को पार्स नहीं कर सकता (और --cert-type विकल्प पर भी ध्यान नहीं दे रहा था)। जब मैंने प्रमाण पत्र को पीईएम प्रारूप में बदल दिया तो यह काम कर गया।


0

मेरे मामले में /etc/ssl/certs/ca-certificates.crtफाइल गायब थी। जैसा कि यह पता चला है कि मैंने /etc/ssl/certsडॉकर छवि बनाते समय डॉकरफाइल के भीतर से सामग्री हटा दी है । मेरे शेल स्क्रिप्ट / बैश कमांड को एडजस्ट करने के बाद डॉकरीफाइल के भीतर से चलाएं - कर्ल अब नए कंटेनर के भीतर से एकदम सही है।

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