2015-01-18 7 views
6

के साथ nginx महत्वपूर्ण त्रुटि मुझे उबंटू 14.04 एलटीएस पर मेरे nginx के साथ समस्या है।एसएसएल हैंडशेकिंग

[email protected]:~# ldd `which nginx` | grep ssl 
     libssl.so.1.0.0 => /lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007f39e236b000) 

[email protected]:~# strings /lib/x86_64-linux-gnu/libssl.so.1.0.0 | grep "^OpenSSL " 
OpenSSL 1.0.1f 6 Jan 2014 

मैं इसके बारे में अधिक जानकारी के लिए खोज की और पाया कि यह साथ समस्या हो सकती है है:

2015/01/18 12:59:44 [crit] 1065#0: *28289 SSL_do_handshake() failed (SSL: error:140A1175:SSL routines:SSL_BYTES_TO_CIPHER_LIST:inappropriate fallback) while SSL handshaking, client: 10.0.2.2, server: 0.0.0.0:443 

मैं अपने OpenSSL के संस्करण देख लिया है: समय-समय पर मैं एक महत्वपूर्ण त्रुटि मिलती है पुराना संस्करण ओपनएसएसएल।

wget https://www.openssl.org/source/openssl-1.0.1l.tar.gz && tar xzf && cd openssl-1.0.1l 

./config && make && make install 

मैं भी सिमलिंक के माध्यम से नए के साथ पुराने OpenSSL बाइनरी फ़ाइल बदल दिया है:: तो मैं नवीनतम संस्करण को संकलित करने की कोशिश की है

ln -sf /usr/local/ssl/bin/openssl `which openssl` 

उसके बाद मैं है:

[email protected]:~# openssl version 
OpenSSL 1.0.1l 15 Jan 2015 

लेकिन अभी भी मेरे पास nginx में पुराना संस्करण है:

[email protected]:~# strings /lib/x86_64-linux-gnu/libssl.so.1.0.0 | grep "^OpenSSL " 
OpenSSL 1.0.1f 6 Jan 2014 

ओपनएसएसएल अपडेट करने के बाद मुझे उबंटू में कोई अन्य नया libssl नहीं मिला। मैं libssl को कैसे अपडेट करूं ताकि nginx नवीनतम संस्करण का उपयोग कर सके?

पीएस .1। शायद गंभीर त्रुटि के साथ समस्या ओपनएसएसएल के संस्करण के बारे में नहीं है।

पीएस.2। मुझे लगता है कि यह क्रिटिकल त्रुटि मेरी पूरी वर्चुअल मशीन को प्रभावित कर सकती है। मुझे वीएम की "समय-समय पर" दुर्घटनाग्रस्त होने में भी समस्या है।

मैंने इतनी सारी चीजों की कोशिश की है और अब मैं निराश हूं। Stackoverflow कृपया मदद करें!

उत्तर

8

...BYTES_TO_CIPHER_LIST:inappropriate fallback) while SSL handshaking, client: 10.0.2.2, server: 0.0.0.0:443

इस सर्वर TLS_FALLBACK_SCSV है, जो इसे अपने मामले में करता है समर्थन करता है तो जैसे किसी जाँच लग रहा है। किसी बारे में चिन्ता की जरूरत नहीं। इसके विपरीत इसका मतलब है कि आपका सर्वर एक उपयोगी सुरक्षा सुविधा का समर्थन करता है। TLS_FALLBACK_SCSV के बारे में अधिक जानकारी के लिए और POODLE जैसे एसएसएल डाउनग्रेड हमलों का पता कैसे लगा सकता है, इस तरह आप http://www.exploresecurity.com/poodle-and-the-tls_fallback_scsv-remedy/ पर एक नज़र डाल सकते हैं।

TLS_FALLBACK_SCSV एसएसएल डाउनग्रेड हमलों का पता लगाने के लिए एक बिल्कुल नया विकल्प है। इसे क्लाइंट और सर्वर पर समर्थन की आवश्यकता है। पुराने nginx/OpenSSL और पुराने ब्राउज़र में बस यह विकल्प नहीं था इसलिए इस समस्या का पता नहीं लगा सका और इस प्रकार पिछले संस्करणों में लॉग इन नहीं किया गया था। यह संदेश महत्वपूर्ण है क्योंकि यह क्लाइंट के खिलाफ वास्तविक एसएसएल डाउनग्रेड हमले के प्रयास को इंगित कर सकता है जो इस विकल्प से पराजित हुआ था। व्यावहारिक रूप से यह शायद विकल्प के समर्थन के लिए कुछ उपकरण जांच कर रहा है, जैसे SSLLabs

संदर्भ के लिए

ssl/ssl_lib.c समारोह ssl_bytes_to_cipher_list से प्रासंगिक कोड:

/* Check for TLS_FALLBACK_SCSV */ 
if ((n != 3 || !p[0]) && 
     (p[n-2] == ((SSL3_CK_FALLBACK_SCSV >> 8) & 0xff)) && 
     (p[n-1] == (SSL3_CK_FALLBACK_SCSV & 0xff))) 
     { 
     /* The SCSV indicates that the client previously tried a higher version. 
     * Fail if the current version is an unexpected downgrade. */ 
     if (!SSL_ctrl(s, SSL_CTRL_CHECK_PROTO_VERSION, 0, NULL)) 
       { 
       SSLerr(SSL_F_SSL_BYTES_TO_CIPHER_LIST,SSL_R_INAPPROPRIATE_FALLBACK); 
       if (s->s3) 
         ssl3_send_alert(s,SSL3_AL_FATAL,SSL_AD_INAPPROPRIATE_FALLBACK); 
       goto err; 
       } 
     p += n; 
     continue; 
     } 
+0

मुझे पहले कभी यह समस्या नहीं आई है। इससे पहले मैं पुराने nginx के साथ डेबियन का उपयोग कर रहा था। अगर इस समस्या को nginx लॉग में महत्वपूर्ण के रूप में टैग किया गया है तो इसके बारे में क्या महत्वपूर्ण है? आपका जवाब स्पष्ट है कि कोई समस्या नहीं है। मुझे यह नहीं मिला। – MegaKaskaskas

+0

मैंने अधिक जानकारी शामिल करने के लिए उत्तर अपडेट किया है। –

+0

@Steffen Ullrich की समस्या को समझाने के लिए धन्यवाद। ओपनएसएसएल पैकेज मैन्युअल रूप से अद्यतन करने के बाद, और उबंटू पर nginx समस्या अभी भी होती है। दैनिक गतिविधि के दौरान nginx निम्नलिखित सामग्री के साथ दर्जनों त्रुटि लॉग उत्पन्न करता है: 2015/01/27 10:06:15 पीएम। [आलोचकों] 730 # 0: * 263,168 SSL_do_handshake() विफल (एसएसएल: त्रुटि: 140 ए 1175: एसएसएल दिनचर्या: SSL_BYTES_TO_CIPHER_LIST: अनुचित फॉलबैक) जबकि एसएसएल हैंडशेकिंग, क्लाइंट: 10.0.2.2, सर्वर: 0.0.0.0:443 – MegaKaskaskas

0

यह ग्राहक भेजने अनुरोध को प्रभावित करेगा? मेरी समझ के रूप में, ग्राहक हमारे सर्वर पर अपना पहला अनुरोध भेजता है, लेकिन शायद हमारे लोड संतुलन को उच्च लोड पर जो पहले कनेक्शन विफल होता है विफल हो जाता है। और फिर क्लाइंट कनेक्शन को पुनः प्रयास करने के लिए अपने प्रोटोकॉल संस्करण को डाउनग्रेड करने का प्रयास करता है, लेकिन हमारे सर्वर की वजह से TLS_FALLBACK_SCSV का समर्थन करता है, यह एसएसएल हैंडशेक विफल हो जाएगा।

तो ग्राहक के पास बाद में हमारे सर्वर से कनेक्शन करने का कोई मौका नहीं होगा?

यदि हमारे लोड बैलेंस अपने सामान्य लोड को पुनर्प्राप्त करते हैं, तो क्या क्लाइंट को उच्च प्रोटोकॉल संस्करण के साथ सफलतापूर्वक पुनः प्रयास करने का मौका मिलेगा?