2015-06-13 12 views
15

मैं एक https साइट से फ़ाइलें डाउनलोड करने और निम्न त्रुटि हो रही रखने के लिए कोशिश कर रहा हूँ:wget ssl चेतावनी हाथ मिलाना विफलता

OpenSSL: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure 
Unable to establish SSL connection. 

ब्लॉग ऑनलाइन पढ़ने से मुझे लगता है मैं सर्वर प्रमाणपत्र और ग्राहक प्रमाणपत्र प्रदान करने के लिए इकट्ठा होते हैं। मुझे सर्वर प्रमाण डाउनलोड करने के बारे में कदम मिले हैं लेकिन क्लाइंट प्रमाण नहीं। एसएसएल के साथ wget का उपयोग करने के लिए किसी के पास कदमों का एक पूरा सेट है? मैंने --no-check-प्रमाणपत्र विकल्प भी आजमाया लेकिन यह काम नहीं किया।

wget संस्करण: wget-1.13.4 openssl संस्करण: OpenSSL 1.0.1f 6 जनवरी 2014

coursera.org पर एक कोर्स के वेबपेज से सभी व्याख्यान संसाधनों को डाउनलोड करने की कोशिश कर रहा। तो, यूआरएल इस तरह कुछ दिखाई देगा: https://class.coursera.org/matrix-002/lecture

इस वेबपृष्ठ को ऑनलाइन एक्सेस करने के लिए फॉर्म प्रमाणीकरण की आवश्यकता है, सुनिश्चित नहीं है कि यह विफलता का कारण बन रहा है या नहीं।

+0

यह कुछ भी हो सकता है, जैसे असमर्थित प्रोटोकॉल, सिफर, एसएनआई ....। लेकिन यह आमतौर पर सर्वर प्रमाण पत्र के सत्यापन के लिए असंबंधित है। कृपया अधिक जानकारी जोड़ें जैसे wget के संस्करण, openssl का संस्करण और जिस साइट पर आप पहुंचने का प्रयास कर रहे हैं। 'Wget -v --debug' का भी उपयोग करें। –

+0

हटाई गई टिप्पणी – sotn

उत्तर

21

यह यहां से ओपनएसएसएल संस्करण के साथ काम करता है, लेकिन wget (1.15) का एक नया संस्करण है।

1.14: Add support for TLS Server Name Indication.

नोट है कि इस साइट SNI की आवश्यकता नहीं है: चैंज को देखते हुए आपकी समस्या के बारे में निम्नलिखित महत्वपूर्ण परिवर्तन है। लेकिन www.coursera.org की आवश्यकता है। और अगर आप -v --debug साथ wget कहेंगे (के रूप में मैं स्पष्ट रूप से मेरी टिप्पणी में सिफारिश की है!) आप देखेंगे:

$ wget https://class.coursera.org 
... 
HTTP request sent, awaiting response... 
    HTTP/1.1 302 Found 
... 
Location: https://www.coursera.org/ [following] 
... 
Connecting to www.coursera.org (www.coursera.org)|54.230.46.78|:443... connected. 
OpenSSL: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure 
Unable to establish SSL connection. 

तो त्रुटि वास्तव में www.coursera.org के साथ होता है और कारण SNI के लिए समर्थन नहीं है। आपको wget के अपने संस्करण को अपग्रेड करना होगा।

+1

यह एक शॉट और अपडेट देगी। – sotn

+0

कभी भी wget को अपडेट करने का विचार नहीं किया। संकेत के लिए धन्यवाद! –

+0

इसलिए, यदि हम किसी भी * पैकेज * को अपग्रेड करने की कोई संभावना नहीं रखते हैं, तो हम किसी ऐसे मुद्दे को कैसे दूर करते हैं? – Vitor

0

असल में आपका ओपनएसएसएल एसएसएलवी 3 का उपयोग करता है और जिस साइट पर आप पहुंच रहे हैं वह उस प्रोटोकॉल का समर्थन नहीं करता है।

बस अपने wget अद्यतन:

sudo apt-get install wget

या अगर यह पहले से ही एक और सुरक्षित प्रोटोकॉल समर्थन कर रहा है, बस तर्क के रूप में जोड़ें:

wget https://example.com --secure-protocol=PROTOCOL_v1

0

मैं SLES12 में और मेरे लिए था यह --secure-प्रोटोकॉल = TLSv1.2 का उपयोग करके और - auth-no-challenge का उपयोग करके 1.14 को जीतने के लिए अपग्रेड करने के बाद काम किया।

wget --no-check-certificate --secure-protocol=TLSv1.2 --user=satul --password=xxx --auth-no-challenge -v --debug https://jenkins-server/artifact/build.x86_64.tgz 
संबंधित मुद्दे