2011-10-14 14 views
11

मैंने अपने स्वयं के गिट सर्वर को एक सेंटोस वितरण पर बनाया है। मैं अपने घर पर गिट प्रोटोकॉल के माध्यम से सर्वर से संपर्क कर सकता हूं। लेकिन जब मैं कार्यालय में https के माध्यम से पहुंचने का प्रयास करता हूं तो मुझे प्राप्त होता है:https के माध्यम से गिट परेशानी: दिनचर्या: SSL23_GET_SERVER_HELLO

Cloning into /Users/vito/Documents/... error: error:14077458:SSL routines:SSL23_GET_SERVER_HELLO:reason(1112) while accessing https://[email protected]/vitorepo.git/info/refs

fatal: HTTP request failed

समस्या कहां है? मेरे सर्वर पर या मेरे कार्यालय-मैक पर?

+0

क्या आपका गिट सर्वर वास्तव में आपके घर के सबनेट के बाहर उपलब्ध है? क्या आप कह सकते हैं, काम से सफलतापूर्वक एसएसएच? –

+0

हां। मेरा सर्वर एक उपयोगी सर्वर है जिसमें सभी उपयोगी बंदरगाह खुले हैं। – Vito

उत्तर

3

ऐसा लगता है कि यह क्लाइंट साइड और अपाचे पर कर्ल द्वारा उपयोग किए जाने वाले कुछ विशिष्ट विकल्पों के साथ एक क्लाइंट और हालिया ओपनएसएसएल संस्करण (1.0.0) के रूप में कार्यरत ओपनएसएसएल (0.9.8) के पुराने संस्करण के बीच एक संगतता समस्या है। सर्वर की ओर।

शायद यह ओपनएसएसएल में हाल ही में कुछ सुरक्षा फिक्स के कारण है (शायद प्रोटोकॉल डाउनग्रेड हमलों के खिलाफ एक)।

क्लाइंट पक्ष पर ओपनएसएसएल लाइब्रेरी संस्करण को 1.0.0 तक अपग्रेड करने का प्रयास करें।

देखें:

https://sourceforge.net/tracker/?func=detail&atid=100976&aid=3395520&group_id=976

1

मेरा मानना ​​है कि यह एक होस्ट-नाम सर्वर पर इस मुद्दे को मिलान है। त्रुटि 1112 SSL_R_TLSV1_UNRECOGNIZED_NAME है, और एक एसएनआई नाम मेलसमैच (info on SNI) से आता है। मैं वही issue in curl था।

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

'वास्तविक' फ़िक्स शायद गिट में क्लाइंट परिवर्तन लेगा ताकि नाम-मेलमिच चेतावनी (जिस तरह से आपका ब्राउज़र पहले से ही करता है) को अनदेखा कर सके।

7

मुझे एक यूबंटू इंस्टेंस के साथ कनेक्ट करने का प्रयास करते समय कर्ल से सटीक प्रतिक्रिया मिली है जो openssl 1.0.0e चल रहा है। मैंने कर्ल कमांड पर -ssl3 ध्वज जोड़कर समस्या को सफलतापूर्वक हल किया।

+0

आप सर एक प्रतिभाशाली हैं। मुझे ओएस एक्स से ऐसा करना पड़ा। क्या आप समझा सकते हैं कि यह क्यों काम करता है? –

2

यदि किसी को भी XMLRPC के साथ यह समस्या है।

डैनियल का उत्तर (एसएसएल संस्करण 3 को मजबूर करना) ने मेरे लिए इस मुद्दे को हल किया। क्लाइंटXmlTransport_curl विकल्पों (सी ++) में बस XMLRPC_SSLVERSION_SSLv3 निर्दिष्ट करें।

समस्या तब शुरू हुई जब हमने अपने सर्वर को ओपनएसएसएल संस्करण 1.0.1-4ubuntu5.5 में अपग्रेड किया और क्लाइंट अभी भी 0.9.8o-5ubuntu1.7 चला रहे थे।

1

सुनिश्चित नहीं है कि मेरे पास बिल्कुल वही समस्या है, लेकिन त्रुटि संदेश वही था। यह केवल उबंटू बॉक्स पर हो रहा था, मैंने एक गिट सर्वर स्थापित किया था, किसी कारण से उस पर स्थापित गिट सर्वर के साथ सेंटोस बॉक्स ठीक था।

मैंने केवल 3 या 4 दिनों के बाद इसे हल किया। ऐसा लगता है क्योंकि गिट की अंतर्निहित कर्ल लाइब्रेरी में टूटा हुआ जीवित कार्यान्वयन है (मैंने HTTP ट्रैफिक को डंप कर दिया और हाथ से व्यवहार की पुष्टि की)।

संक्षेप में कर्ल (कम से कम संस्करण गिट कार्यान्वयन के अंदर उपयोग किया गया संस्करण, जिसमें कमांड लाइन गिट और ग्रहण ईजीआईटी शामिल है) कनेक्शन प्रतिक्रिया शीर्षलेख की सही ढंग से व्याख्या नहीं करता है, या अधिक सही ढंग से प्रतीत नहीं होता है इसकी अनुपस्थिति की सही व्याख्या करें।

समस्या को ठीक करने के लिए आपको विशेष रूप से गिट के लिए अतिरिक्त निर्देश के साथ अपने जीआईटी भंडार की सेवा कर रहे अपाचे के अंदर SSL वर्चुअल होस्ट को कॉन्फ़िगर करने की आवश्यकता है। </वर्चुअलहोस्ट > से ठीक पहले इन पंक्तियों को जोड़ें।

BrowserMatch "git" nokeepalive ssl-unclean-shutdown 

आप दुर्भाग्य से अपाचे नहीं बता बस (क्लीनर होगा) क्योंकि कर्ल कि संभाल नहीं सकते हैं, लेकिन तुम सिर्फ एक कनेक्शन के लिए मजबूर करने के लिए कह सकते HTTP/1.0 में डाउनग्रेड करने का कर सकते हैं: हर अनुरोध पर पास जो कर्ल जानता है कि कैसे संभालें।

एक भ्रामक संयोग में, यदि आप सीधे इस बदलाव के बिना कर्ल का परीक्षण करने का प्रयास करते हैं तो यह काम करेगा, क्योंकि यह एक ही अनुरोध करता है और फिर निरस्त करता है। केवल एसएसएल पर एक ही रख-रखाव कनेक्शन पर दो अनुरोध निष्पादित करने के लिए कर्ल प्राप्त करके यह समस्या स्पष्ट हो जाएगी।

0

मुझे एक ही त्रुटि थी। मूल कारण क्लाइंट/सर्वर openssl संस्करणों की असंगतता प्रतीत होता है। मैंने अपने सर्वर को apt-get upgrade openssl के साथ अपग्रेड कर दिया है और मेरी विंडोज़ गिट स्थापना को अपग्रेड किया है।

खिड़कियों के संयोजन git ग्राहक git version 1.9.4.msysgit.0, जो openssl संस्करण शामिल हैं: openssl संस्करण के साथ OpenSSL 0.9.8e 23 Feb 2007

और सर्वर: OpenSSL 1.0.1c 10 May 2012

ठीक एक साथ काम करने लगता है।

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