केवल गितुब के लिए एसएसएल प्रमाणपत्र जोड़ना (सीए सर्टिफिकेट पैकेज से सभी प्रमाणपत्र नहीं)


13

HTTPS पर Github तक पहुँचने पर मुझे निम्न त्रुटि मिलती है:

error: server certificate verification failed. 
CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none

इसका कारण यह है कि मेरे पास कोई प्रमाण पत्र नहीं है /etc/ssl/certs/। मुझे पता है कि इस समस्या को कैसे ठीक किया जाए। मैं ca-certificatesडेबियन रिपॉजिटरी से पैकेज स्थापित कर सकता हूं । हालाँकि, समस्या यह है कि यह सभी प्रमाणपत्र (हजारों) स्थापित करेगा, जो मैं जरूरी नहीं मानता / विश्वास करना चाहता हूं।

मैं केवल जीथब के लिए प्रमाण पत्र कैसे स्थापित कर सकता हूं?

एक उपप्रकार / उपवर्ग

एक अन्य मशीन पर, जहां पैकेज ca-certificatesपहले से स्थापित है और गिट काम करता है, मैंने देखा है कि कुछ प्रमाण पत्र /etc/ssl/certs/एक-प्रमाण-प्रति-फ़ाइल में हैं और अन्य कई-प्रमाणपत्र-इन-वन-फ़ाइल हैं। जीथब सर्टिफिकेट वाली विशेष फाइल /etc/ssl/certs/ca-certificates.crtमें 150 से अधिक अन्य प्रमाण पत्र शामिल हैं:

$ grep 'BEGIN CERTIFICATE' /etc/ssl/certs/ca-certificates.crt | wc -l
159

मैं कैसे पा सकता हूं कि इन 159 प्रमाणपत्रों में से कौन सा एक है जिसकी मुझे आवश्यकता है? (जानवर बल के अलावा - हिस्सों में फाइल को स्लाइस करना और दोनों हिस्सों को जांचना, दोहराना while n > 1)।


आप क्या खत्म करने की कोशिश कर रहे हैं? GitHub से प्रोग्रामेटिक रूप से संपर्क करना?
नैट डब्ल्यू।

क्या आपने स्रोत पैकेज डाउनलोड करने की कोशिश की है और फिर केवल वही प्रमाणपत्र निकालना है जो आप चाहते हैं?
जयहिन्द्रे

आप गितुब का उपयोग करने के लिए क्या उपयोग कर रहे हैं? कुछ कमांड लाइन उपकरण? एक ब्राउज़र?
lk-

जवाबों:


13

अपने Github तक पहुँचने के लिए आपको इसे ssh के माध्यम से करना होगा। इसलिए आपको अपने ssh सार्वजनिक कुंजी को github में जोड़ना होगा। उसके बाद आप ssh अर्थात के माध्यम से github तक पहुँचने में सक्षम हैं:

git init git@github.com:yourname/yourrepo.git

इन्हें भी देखें: गितुब: ssh कीज़ बनाते हुए , विकीहो

[# 1 संपादित करें]

बिना प्रमाणपत्र जाँच:

GIT_SSL_NO_VERIFY=true git clone https://github.com/p/repo.git

या प्रमाणित है

GIT_SSL_NO_VERIFY=true git clone https://user@pass:github.com/p/repo.git

मेरे लिए यह अभी भी स्पष्ट नहीं है कि आप क्या पूछ रहे हैं, क्योंकि आप जानते हैं कि सीए-सर्टिफिकेट स्थापित करने से समस्या ठीक हो जाएगी।

[# 2 संपादित करें]

ठीक है, दूसरा सवाल था

कैसे केवल प्रमाण पत्र के लिए जो https के माध्यम से github.com का उपयोग करने की आवश्यकता है

  1. अपना ब्राउज़र खोलें और https://github.com/ पर जाएँ । बाईं ओर से हरे नाम पर https://क्लिक करें और पर क्लिक करें Certificates। पर Detailsटैब, आप प्रमाणपत्र श्रृंखला है, जो देख सकते हैं:

    DigiCert ...
      DigiCert ...
       github.com ...
    
  2. प्रत्येक DigiCert फ़ाइल को प्रमाणित करता है।

  3. करने के लिए फ़ाइलों की प्रतिलिपि बनाएँ /etc/ssl/certs/
  4. चलाने के लिए c_rehashजो सभी प्रमाण पत्र बिल्लीca-certificates.crt
  5. आप कर चुके हैं।

जैसा कि मैंने कहा, मैं इस तरह के कार्यों का मित्र नहीं हूं क्योंकि जीथब कभी भी सीए को बदल सकता है, इसलिए इसका परिणाम हमेशा अतिरिक्त होगा।


1
सुझाव के लिए धन्यवाद। लेकिन मैं के githubमाध्यम से उपयोग करना चाहते हैं https
मार्टिन वेगाटर

1

जैसा कि पहले सुझाव दिया गया था, आप इस समस्या से बचने के लिए HTTPS पर निर्भर होने के बजाय SSH कुंजियों का उपयोग कर सकते हैं, और यकीनन, बेहतर सुरक्षा का आनंद लेंगे।

यह कहने के बाद, मुझे लगता है कि आप जो खोज रहे हैं वह रूट / CA प्रमाणपत्र / etc / ssl / certs में कैसे स्थापित किया जाए। संक्षेप में, PEM- एन्कोडेड फ़ाइल को / etc / ssl / certs में डंप करने के लिए पर्याप्त नहीं है - आपको उक्त प्रमाण पत्र के हैश की गणना भी करनी है, और उस सर्टिफिकेट को / etc / ssl / certs में बनाना है। फ़ाइल। सिम्लिंक का नाम, हैश प्रत्यय द्वारा .0 होना चाहिए, या यदि कोई हैश टक्कर है, .1, और इसी तरह।

यहाँ एक विस्तृत राइटअप है, साथ ही एक नमूना स्क्रिप्ट जिसे आप इस प्रक्रिया को स्वचालित करने के लिए उपयोग कर सकते हैं: http://wiki.openwrt.org/doc/howto/wget-ssl-certs#adding.root.certports

आशा है कि यह वही है जो आप ढूंढ रहे थे, लेकिन जैसा मैंने पहले कहा था, SSH चाबियाँ शायद "बेहतर" समाधान हैं। :)


c_rehashवही किया जा रहा है जो आपने समझाया था। c_rehashमैन पेज देखें BTW: हैश की गणना करने की कोई आवश्यकता नहीं है। केवल प्रमाणपत्र gitइस फ़ाइल को पढ़ने के बाद से ca-certificate.crt में कैटिंग करना पर्याप्त है । इसके अलावा लिंक ने बताया कि कैसे मैन्युअल रूप से ओपनसेल के साथ प्रमाण पत्र प्राप्त करें। यह बहुत ही संदिग्ध है और मध्य हमले में एक व्यक्ति को उकसाता है। मैं इसकी सिफारिश नहीं करूंगा।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.