2011-11-14 18 views
6

मैं एक गिट रेपो का उपयोग करना चाहता हूं जो https के माध्यम से सुलभ है, एचटीपीएस सर्वर के पास स्वयं हस्ताक्षरित प्रमाण पत्र है। मैं हमेशा एक त्रुटि ग्रहण + egit साथ रेपो क्लोन करने के लिए प्रयास करने के दौरान मिलता है:स्वयं हस्ताक्षरित प्रमाणपत्र के साथ उदाहरण, https

https://host/path: नहीं कर सकते हैं खुला Git से अपलोड पैक sun.security.validator.ValidatorException: PKIX पथ निर्माण विफल रहा: sun.security। provider.certpath.SunCertPathBuilderException: करने में असमर्थ अनुरोध किया लक्ष्य

को वैध प्रमाण पत्र पथ यह इस समस्या को बायपास करने के लिए संभव है लगता है? मैंने कंसोल क्लाइंट के साथ एसएसएल सत्यापन छोड़ने के लिए export GIT_SSL_NO_VERIFY=1 कमांड का उपयोग किया। यह चाल ग्रहण के साथ काम नहीं करती है।

धन्यवाद,

Hubi

उत्तर

11

आप, साथ ही सर्वर सत्यापन की अनदेखी करने के eGit सेट कर सकते हैं हो सकता है। ग्रहण में विंडो -> वरीयताओं पर जाएं।

से टीम के लिए जाने -> Git -> विन्यास

क्लिक करें "नई एंट्री '

कुंजी: http.sslVerify मूल्य: झूठी

क्लिक करें" ठीक है "

क्लिक करें "ठीक है"

इस ब्लॉग के लिए यहां एक और विस्तृत दृष्टिकोण के लिए यहां मेरा ब्लॉग पोस्ट देखें: http://www.pur-logic.com/2012/04/21/egit-self-signed-certificate/

+0

क्या यह वही समस्या है यदि होस्ट नाम के बजाय आईपी पता का उपयोग किया जाता है? – Chris

+2

'http.sslVerify: false' का उपयोग करके" स्वयं हस्ताक्षरित प्रमाणपत्र और गिट "विषय से संबंधित कई उत्तरों में बताया गया है सुरक्षा पीओवी ** से ** एक भयानक अभ्यास है और एक पूर्ण अंतिम उपाय होना चाहिए, विशेष रूप से अन्य विकल्प। यह उत्तर समस्या हल करता है और दूसरों के लिए खुलता है, आमतौर पर अधिक गंभीर माना जाता है। लेकिन हे, हैकर्स भी खाना चाहिए, है ना? :) यहां मूल समस्या यह है कि स्वयं हस्ताक्षरित प्रमाण पत्र जावा/यूक्लिसे द्वारा उपयोग किए जाने वाले जावा द्वारा भरोसा नहीं किया जाता है। और समाधान इसे कैकर में नामांकित करने के लिए है। – shturec

+0

+1 @shturec! आप एक साइट के लिए एसएसएल सत्यापन अक्षम नहीं कर रहे हैं, लेकिन जब आप ऐसा करते हैं तो सभी साइटें। यह एक भयानक और बहुत असुरक्षित समाधान है। –

5

आप (या तो अपने JDK निर्देशिका में डिफ़ॉल्ट कुंजीस्टोर cacerts या आप पैरामीटर -Djavax.net.ssl.trustStore के साथ एक निर्दिष्ट करें) अपना कुंजी संग्रह में है कि प्रमाणपत्र आयात करने के लिए है ।

+0

लेखक द्वारा चयनित जवाब के विपरीत यह एक नहीं खुला सुरक्षा कमजोरियों और के रूप में यह है को प्राथमिकता से एक होना चाहिए है यहां सटीक समस्या का समाधान - उदाहरण के द्वारा उपयोग किया गया जावा प्रमाण पत्र को विश्वसनीय मानता नहीं है। – shturec

0

FAQ of CAcert Keytool के लिए कमांडलाइन प्रदान करता है:

keytool -keystore $/PATH/TO/CACERTS/KEYSTORE -storepass changeit -import -trustcacerts -v -alias cacertclass1 -file root.crt 
  • अंततः आप -trustcacerts छोड़ एक सामान्य प्रमाणपत्र आयात करने के लिए है।
  • -alias भी अनावश्यक
0

मुझे इसके साथ कुछ परेशानी थी, लेकिन एक अलग कहानी के साथ। गिट रेपो के लिए होस्टनाम प्रमाणपत्र के होस्टनाम से मेल नहीं खाता था। समाधान होस्टनाम से मेल खाने के लिए प्रमाणपत्र को बदलना था।

+0

क्या आप समझा सकते हैं कि आपने यह कैसे किया? मुझे लगता है कि यह भी मेरी समस्या है –

0

हमें इस उपयोग-मामले के लिए http.sslCAInfo विकल्प का उपयोग करना चाहिए।
हालांकि, इस विकल्प के लिए जेजीआईटी विकास की स्थिति ग्रहण बहुत लंबे समय तक फंस गई है।एक

FYI करें

संबंधित मुद्दे