कर्ल: (35) त्रुटि: 1408F10B: एसएसएल दिनचर्या: ssl3_get_record: गलत संस्करण संख्या


126

जब मैं कर्ल (या libcurl) का उपयोग करके किसी भी सर्वर (जैसे google.com) से कनेक्ट करने का प्रयास करता हूं तो मुझे त्रुटि संदेश मिलता है:

कर्ल: (35) त्रुटि: 1408F10B: एसएसएल दिनचर्या: ssl3_get_record: गलत संस्करण संख्या

वाचाल उत्पादन:

$ curl www.google.com --verbose  
* Rebuilt URL to: www.google.com/  
* Uses proxy env variable no_proxy == 'localhost,127.0.0.1,localaddress,.localdomain.com'  
* Uses proxy env variable http_proxy == 'https://proxy.in.tum.de:8080'  
*   Trying 131.159.0.2...  
* TCP_NODELAY set  
* Connected to proxy.in.tum.de (131.159.0.2) port 8080 (#0)  
* successfully set certificate verify locations:  
*   CAfile: /etc/ssl/certs/ca-certificates.crt  
  CApath: none  
* TLSv1.3 (OUT), TLS handshake, Client hello (1):  
* error:1408F10B:SSL routines:ssl3_get_record:wrong version number  
* Closing connection 0  
curl: (35) error:1408F10B:SSL routines:ssl3_get_record:wrong version number'  

किसी कारण से कर्ल TLSv1.3 का उपयोग करने लगता है, भले ही मैं इसे कमांड --tlsv1.2 के साथ TLSv1.2 का उपयोग करने के लिए मजबूर करता हूं (यह अभी भी TLSv1.3 (OUT) प्रिंट करेगा, ...) "मैं नवीनतम संस्करण का उपयोग कर रहा हूं कर्ल और ओपनएसएसएल दोनों:

$ curl -V  
curl 7.61.0-DEV (x86_64-pc-linux-gnu) libcurl/7.61.0-DEV OpenSSL/1.1.1 zlib/1.2.8  
Release-Date: [unreleased]  
Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp  
Features: AsynchDNS IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP UnixSockets HTTPS-proxy  

मुझे लगता है कि यह मेरे प्रोग्रामों की स्थापना से जुड़ी समस्या है। क्या कोई मुझे समझा सकता है कि इस त्रुटि संदेश का क्या मतलब है?

जवाबों:


209
* Uses proxy env variable http_proxy == 'https://proxy.in.tum.de:8080'   
                                         ^^^^^

https://गलत है, यह होना चाहिए http://। प्रॉक्सी को HTTP द्वारा ही एक्सेस किया जाना चाहिए न कि HTTPS को, भले ही लक्ष्य URL HTTPS हो। प्रॉक्सी अभी भी ठीक से HTTPS कनेक्शन को हैंडल नहीं करेगा और एंड-टू-एंड एन्क्रिप्शन रखेगा। यह कैसे किया जाता है, इसके विवरण के लिए HTTP कनेक्ट विधि देखें ।


7
यदि आपके पास Docker में यह त्रुटि है, तो इस समस्या को सार्वजनिक करने के लिए पोर्ट 443 को उजागर करना है
DrX

7

सरल उत्तर

यदि आप प्रॉक्सी सर्वर के पीछे हैं, तो कृपया कर्ल के लिए प्रॉक्सी सेट करें। कर्ल सर्वर से कनेक्ट करने में सक्षम नहीं है इसलिए यह गलत संस्करण संख्या दिखाता है। Subl ~ / .curlrc खोलकर प्रॉक्सी सेट करें या किसी अन्य टेक्स्ट एडिटर का उपयोग करें। फिर फ़ाइल के लिए निम्न पंक्ति जोड़ें: प्रॉक्सी = प्रॉक्सीसर: प्रॉक्सीपोर्ट फॉर ईजी प्रॉक्सी = 10.8.0.1:8080

यदि आप एक प्रॉक्सी के पीछे नहीं हैं, तो सुनिश्चित करें कि कर्ल आर्क फ़ाइल में प्रॉक्सी सेटिंग्स नहीं हैं।


7

यदि किसी को Nginx का उपयोग करके यह त्रुटि मिल रही है, तो अपने सर्वर कॉन्फ़िगरेशन में निम्नलिखित को जोड़ने का प्रयास करें:

server {
    listen 443 ssl;
    ...
}

समस्या Nginx से एक क्लाइंट को HTTP सर्वर की सेवा से उपजी है जो आप जिस भी पोर्ट पर सुन रहे हैं उस पर HTTPS की उम्मीद कर रहा है। जब आप निर्देश sslमें निर्दिष्ट करते हैं listen, तो आप इसे सर्वर साइड पर साफ करते हैं।


2
thx, इसने मुझे समाधान के लिए प्रेरित किया, बस उल्लेखित nginx config line में 'ssl' को याद किया
21

0

एक पंक्ति में और अधिक:

प्रॉक्सी = 192.168.2.1: 8080; कर्ल -v example.com

जैसे। $ प्रॉक्सी = 192.168.2.1: 8080; कर्ल -v example.com

xxxxxxxxx-ASUS: ~ $ प्रॉक्सी = 192.168.2.1: 8080; कर्ल -v https: //google.com | हेड -c 15% कुल% प्राप्त% Xferd औसत स्पीड टाइम टाइम वर्तमान समय लोड वर्तमान कुल अपलोड अपलोड स्पीड 0 0 0 0 | 0 0 0 0 0 -: -: -: -: -: - -: -: - 0

  • 172.217.163.46:443 की कोशिश कर रहा है ...
  • TCP_NODELAY सेट
  • Google.com से जुड़ा (172.217.163.46) पोर्ट 443 (# 0)
  • ALPN, h2 की पेशकश
  • ALPN, http / 1.1 की पेशकश कर रहा है
  • सफलतापूर्वक प्रमाण पत्र सत्यापित स्थान सेट करें:
  • CAfile: /etc/ssl/certs/ca-certports.crt CApath: / etc / ssl / certs} [5 बाइट्स डेटा]
  • TLSv1.3 (OUT), TLS हैंडशेक, क्लाइंट हैलो (1):} [512 बाइट्स डेटा]
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.