SSL कनेक्शन Nginx के साथ रीसेट हो जाता है


0

मैंने ssl certs को letencrypt के जरिए बनाया। वे ठीक हो जाते हैं और जब मैं चलता हूं:

openssl x509 -in {ssl_cert} -text -noout

यह सभी उपयुक्त जानकारी को प्रिंट करता है और ऐसा लगता है कि सब कुछ अच्छा है। फ़ाइलें 0600अनुमतियों के साथ रूट के स्वामित्व में हैं । यदि, दूसरी ओर, मैं वेब से एक ही बात का प्रयास करता हूं:

echo | openssl s_client -connect {host}:443

मुझे निम्नलिखित त्रुटि मिलती है:

CONNECTED(00000003)
write:errno=104
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0bytes and written 297bytes
---
New,(NONE),Cipher is(NONE)
Secure Renegotiation IS NOT supported
Compression:NONE
Expansion:NONE
---

जो मुझे विश्वास दिलाता है कि nginx सिर्फ ssl यातायात की सेवा नहीं है। जब मैं यह कोशिश करता हूं:

nginx -V

मैं निम्नलिखित मिलता है (* महत्वपूर्ण बिट्स के आसपास)

nginx version: nginx/1.1.19
*TLS SNI support enabled*
configure arguments: --prefix=/etc/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-log-path=/var/log/nginx/access.log --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid --with-debug --with-http_addition_module --with-http_dav_module --with-http_geoip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_realip_module --with-http_stub_status_module *--with-http_ssl_module* --with-http_sub_module --with-http_xslt_module --with-ipv6 --with-sha1=/usr/include/openssl --with-md5=/usr/include/openssl --with-mail --with-mail_ssl_module --add-module=/build/buildd/nginx-1.1.19/debian/modules/nginx-auth-pam --add-module=/build/buildd/nginx-1.1.19/debian/modules/nginx-echo --add-module=/build/buildd/nginx-1.1.19/debian/modules/nginx-upstream-fair --add-module=/build/buildd/nginx-1.1.19/debian/modules/nginx-dav-ext-module

netstat मुझे बताता है कि nginx चल रहा है।

$ sudo netstat -an | grep 443
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN     
unix  3      [ ]         STREAM     CONNECTED     8443     

चूँकि nginx को सभी ssl समर्थन की ज़रूरत है (मुझे लगता है) के साथ बनाया गया है और मेरी vhost ssl का उपयोग करने के लिए सेटअप है और प्रमाणपत्र सही है ... मैं यह पता नहीं लगा सकता कि ssl कनेक्शन में आने पर यह केवल संचार में कटौती क्यों करेगा। " ट्रैफ़िक को तार-तार करने की कोशिश की और ग्राहक एक ssl "क्लाइंट हैलो" भेजता है और एक RST वापस भेज दिया जाता है ...

मुझे यह इंगित करना चाहिए कि मेरे पास इस सर्वर पर कई vhosts सेटअप हैं और उनमें से सभी एक ही व्यवहार को प्रदर्शित करते हैं। इसलिए मैं अनुमान लगा रहा हूं कि यह कुछ अधिक सामान्य है, लेकिन मेरा नगनेक्स vhost सामान नीचे है:

मैंने अपना nginx conf फ़ाइल सेटअप किया है (केवल दिखाया गया बिट्स):

server {
    listen 80;
    server_name {server name};

    location / {
        return 301 https://$host$request_uri;
    }
}

server
{
        listen 443 ssl;

        server_name {server name};

        ssl on;
        ssl_certificate {path to certs}/fullchain.pem;
        ssl_certificate_key {path to certs}/privkey.pem;

        ssl_session_timeout 5m;

        ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
        ssl_ciphers'EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS +RC4 RC4';


        ssl_prefer_server_ciphers on;
        ssl_session_cache shared:SSL:10m;
}

इसलिए मुझे पूरा यकीन है कि सामान समस्या नहीं है। जब मैं वेबसाइट को हिट करने की कोशिश करता हूं


1
यदि आप सर्वर नाम प्रदान करते हैं तो क्या होता है openssl s_client -connect {host}:443 -servername {host}:?
रिचर्ड स्मिथ

कनेक्शन के बारे में नग्नेक्स का लॉग क्या कहता है? क्या आपने जांच की है netstatकि वास्तव में 443 पर नाज़िनक्स सुन रहा है? इसके अलावा, मुझे लगता है कि वहाँ के बीच रिक्त स्थान माना जाता है ssl_protocolsलेकिन यह शायद एक स्पष्ट त्रुटि का कारण होगा।
DerfK

मैं अपनी पोस्ट को अपडेट करूंगा, लेकिन सवालों के जवाब देने के लिए: netstat का कहना है कि nginx 443 पर सुन रहा है, मुझे इसका उल्लेख करने के लिए याद दिलाने के लिए धन्यवाद। और मेरी कॉपी पेस्ट के साथ कुछ हुआ ... ssl_protocols के बीच रिक्त स्थान हैं
xbakesx

अगर मैं -servername {host}खुलता कमांड में कुछ नहीं बदलता है, हालांकि यह एक महान जाँच है ... कोई पासा नहीं।
xbakesx

1
Nginx 1.1.19 चार साल का है, क्या आपने Nginx को अपडेट करने पर विचार किया है?
टिम

जवाबों:


0

Nginx 1.1.19 चार साल पुराना है, समाधान Nginx के नवीनतम संस्करण में अपग्रेड होने की संभावना है।


इसने मेरी समस्या को हल कर दिया है लेकिन अगर कोई भी इस बारे में एक्सट्रपलेशन कर सकता है कि 1.1.19 से 1.8.1 में nginx में क्या तय किया गया था, तो इसके कारण हो सकता है या इसके आस-पास के काम को दस्तावेज़ करने के लिए बहुत अच्छी जानकारी होगी।
xbakesx

मैंने रिलीज नोट्स के माध्यम से देखा। पिछले चार वर्षों में एसएसएल में दर्जनों बदलाव और सुधार हुए हैं, इसे एक व्यक्ति परिवर्तन में पिन करना मुश्किल होगा। nginx.org/en/CHANGES
टिम

मैं भी के माध्यम से देखा, वहाँ कुछ भी नहीं है कि अपराधी के रूप में असली होनहार लग रहा था ...
xbakesx
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.