Git http .sslcainfo प्रॉपर्टी को .gitconfig से पहचानता प्रतीत होता है, लेकिन निष्पादन पर ध्यान नहीं देता है? SEC_E_UNTRUSTED_ROOT


10

सब, मेरे पास एक काम करने का प्रमाणपत्र श्रृंखला है (ओपनएसएसएल के साथ परीक्षण योग्य) लेकिन किसी तरह मैं इन प्रमाण पत्रों को लोड करने के लिए गिट को बताने का प्रबंधन नहीं कर सकता।

मुझे एक ही "अविश्वसनीय रूट अथॉरिटी" त्रुटि (SEC_E_UNTRUSTED_ROOT) स्वतंत्र रूप से मिलती है कि क्या मेरा गिट कॉन्फ़िगरेशन किसी मौजूदा या नकली प्रमाणपत्र श्रृंखला फ़ाइल की ओर इशारा करता है।

जानकारी के लिए, कृपया संलग्न स्क्रीनशॉट देखें।यहां छवि विवरण दर्ज करें

.gitconfigनकली फ़ाइल के लिए उपयोग करना

sslCAInfo = C:/tmp/foobar.crt

या, OpenSSL के साथ काम करने वाली वास्तविक फ़ाइल के लिए:

sslCAInfo = C:/tmp/ca-bundle.crt

कंसोल ट्रांस्क्रिप्ट:

C:\tmp>openssl version
OpenSSL 0.9.8h 28 May 2008

C:\tmp>git --version
git version 2.12.2.windows.2

C:\tmp>git config --list
http.sslverify=true
http.sslcainfo=C:/tmp/ca-bundle.crt

C:\tmp>dir
24.04.2017 13:45 10.875 ca-bundle.crt

c:\tmp>openssl s_client -state -connect https://mygithost:443 -CAfile .\ca-bundle.crt

Verify return code: 0 (ok)

C:\tmp git clone https://mygithost/bitbucket/scm/my.git
Cloning into ...
fatal: unable to access ... : schannel: next InitializeSecurityContext failed: SEC_E_UNTRUSTED_ROOT (0x80090325) - The certificate chain was issued by an authority that is not trusted.

C:\tmp> git -c http.sslverify=false clone https://mygithost/bitbucket/scm/my.git
Cloning into ...
Resoliving deltas: 100%, done.

C:\tmp>git config --list
http.sslverify=true
http.sslcainfo=C:/tmp/foobar.crt

C:\tmp\xxx\git pull
fatal: unable to access ... : schannel: next InitializeSecurityContext failed: SEC_E_UNTRUSTED_ROOT (0x80090325) - The certificate chain was issued by an authority that is not trusted.

आपके पास आपके git कॉन्फ़िगरेशन में एक टाइपो है: tmp के बजाय
tml

मुझे लगता है कि यह अजीब बात है कि नकलीपन के साथ कोई त्रुटि नहीं होती है। आपको अन्य कॉन्फ़िगरेशन स्तरों (वैश्विक, उपयोगकर्ता और रेपो) को सत्यापित करना चाहिए कि कहीं न कहीं एक
गिरावट

@ टेंसिबाई कृपया डॉक्स को निर्देश या एक लिंक प्रदान करें, यह सुनिश्चित नहीं करें कि यह सब कैसे प्रिंट करें। उदाहरण के लिए git config --global --list काम नहीं करता है।
पीटर मुर्सकिन

Git config --get-all को सिस्टम, ग्लोबल और लोकल के प्रत्येक परिणामी विन्यास को दिखाने के लिए करना चाहिए (मैं फोन पर सत्यापित नहीं कर सकता हूं, और यह सिर्फ एक अनुमान है, set SSL_CERT_FILE=C:\tmp\ca-bundle.crt
वर्कअलाउड बताता है

C:\git config --get-all-- => error: wrong number of arguments
पीटर म्यूरशिन

जवाबों:


2

यहाँ एक ताजा स्थापित करने के बाद आज ही यह हिट हो गया है तो यहाँ बताया गया है कि मैं इससे कैसे मिला:

आपके लॉग से (जोर मेरा है):

घातक: उपयोग करने में असमर्थ ...: schannel : अगली InitialSecurityContext विफल:

git को schannel (windows native कार्यान्वयन) का उपयोग करने के लिए कॉन्फ़िगर किया गया है, लेकिन schannel windows certs बंडल का उपयोग करता है न कि cainfo बंडल का।

एक कस्टम बंडल फ़ाइल का उपयोग करने के लिए Opensl पर स्विच करने के लिए इसका उपयोग करें:

git config --system http.sslbackend openssl

और अब git http.sslcainfo में पारित CA बंडल का सम्मान करेगा।

वैकल्पिक रूप से मेरी त्रुटि साइबर सूट की एक समस्या थी, जिसे आप निम्नलिखित लिंक से दिलचस्पी ले सकते हैं:


1

मेरे पास एक साल पहले ऐसा ही कुछ था, इसलिए मुझे आशा है कि मुझे याद होगा -

आपके पास crt फ़ाइल में सभी प्रमाणपत्र श्रृंखला होनी चाहिए। सत्यापित करें कि आपके पास आपके बिटकॉइन प्रमाणपत्र और रूट एक (समावेशी) के बीच के सभी मध्यवर्ती प्रमाण पत्र हैं।

आप पेम प्रारूप में उन्हें लागू करने के लिए सही प्रारूप पर एक नज़र डाल सकते हैं (जो मुझे लगता है कि crt के साथ आपका मामला है) यहाँ पर

कोमोडो द्वारा मेरे प्रमाण पत्र पर हस्ताक्षर किए गए थे जब मेरे पास यह मुद्दा था, उनके प्रमाण पत्र और मध्यवर्ती अधिकांश सिस्टम के लिए आपूर्ति की गई डिफ़ॉल्ट सीए-बंडल में नहीं थे।

उम्मीद है की वो मदद करदे!

संपादित करें: अब मैंने देखा कि यह नकली के साथ भी होता है - सिस्टम को ज्ञात ज्ञात प्रमाणपत्रों की जांच करने का प्रयास करें (प्रत्येक सिस्टम में ऐसा है)। खिड़कियों पर आप विंडोज सर्टिफिकेट एमएमसी स्नैप-इन पर जा सकते हैं ।

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