अगर मुझे मेरा सुरक्षा प्रमाणपत्र (प्रमाणपत्र) नवीनीकृत करना है, तो क्या मुझे नगनेक्स को फिर से शुरू करने की आवश्यकता है?


33

तो मैं एक nginx सर्वर स्थापित कर रहा हूँ SSL के साथ सर्वर की परिभाषा के साथ कुछ इस तरह से सक्षम:

server {
    listen :80;
    listen [::]:80;
    server_name example.org;
    root /foo/bar;

    ssl on;
    ssl_certificate /path/to/public/certificate;
    ssl_certificate_key /path/to/private/key;

    ...
}

आपको विचार मिलता है (कृपया किसी भी टाइपोस को माफ करें)।

वैसे भी, मैं जो सोच रहा हूं वह है; यदि मैं अपना प्रमाणपत्र नवीनीकृत करता हूं, तो क्या नगनेक्स को पुनः आरंभ किए बिना उन्हें स्थापित करने का कोई तरीका है?

उदाहरण के लिए, से सांकेतिक लिंक का उपयोग करने के अगर मैं थे /path/to/public/certificateऔर /path/to/private/key,, मेरे वर्तमान प्रमाण पत्र की ओर इशारा करते (रों) मैं अभी भी पुनः आरंभ करने की आवश्यकता होगी nginx, तो मैं बस नया (नए सिरे से) प्रमाण पत्र के लिए बात करने के लिए इन बदलने के लिए कर रहे थे? क्या कोई विकल्प हैं?

जवाबों:


26

हां, मुझे पूरा यकीन है कि सही समाप्ति तिथि प्रदर्शित करने के लिए नए प्रमाणपत्र के लिए आपको Nginx को फिर से लोड करना होगा, लेकिन एक साधारण कैश-समाशोधन और ब्राउज़ आपको इसे देखने की अनुमति देनी चाहिए।

या यदि आप cli पसंद करते हैं, तो आप हमेशा पुराने भरोसेमंद OpenSSL कमांड का उपयोग कर सकते हैं:

echo | openssl s_client -connect your.domain.com:443 | openssl x509 -noout -dates

इससे आपको प्रमाणपत्र पर वर्तमान तिथियां मिलेंगी। आपके मामले में बंदरगाह 443 के बजाय 80 होगा।

कई बार nginx -s reloadउम्मीद के मुताबिक काम नहीं होता। कई प्रणालियों (डेबियन, आदि) पर, आपको उपयोग करने की आवश्यकता होगी /etc/init.d/nginx reload

आप कॉन्फ़िगरेशन फ़ाइल को सीधे निर्दिष्ट कर सकते हैं यदि बाकी सब विफल हो जाता है, द्वारा nginx -c /path/to/nginx.conf


वाह, उन लोगों को पोर्ट 443 के लिए होना चाहिए था, मेरा बुरा! वैसे भी, महान जवाब के लिए धन्यवाद!
हरविक्क

8
nginx reloadऔर Nginx को पुनरारंभ करना दो अलग-अलग चीजें हैं: reloadNginx को पुनरारंभ नहीं करता है, लेकिन केवल इसे SITEUP संकेत भेजें। क्या SITEUP संकेत पर्याप्त है?
पोर्टन

11
हाँ। किसी SIGHUP को भेजने से nginx को अद्यतन प्रमाणपत्र पर स्विच करना पड़ेगा।
18

echo |आपकी आज्ञा में क्या कार्य है ? अगर मैं इसे छोड़ देता हूं, तो मुझे तुरंत वापस नहीं मिलता है। मैं आउटपुट को notAfterफिर से तैयार करना चाहूंगा और फिर वर्तमान तिथि से तुलना करूंगा, ताकि यह प्रमाणित होने से कुछ दिन पहले खुद को स्पैम कर दे।
Amedee Van Gasse

@AmedeeVanGasse echoपाइप केवल OpenSSL शेल को सफाई से बैश में वापस बनाता है और आउटपुट को सामान्य रूप में वापस करता है। लिपियों में उपयोग के लिए स्वच्छ निकास के लिए और स्वचालन उद्देश्यों के लिए यह आवश्यक है जैसे यह लगता है कि आप योजना बना रहे हैं। मैंने कई स्क्रिप्ट्स को लागू किया है जैसे कि आप उसी मूल कार्यक्षमता का उपयोग करके योजना बना रहे हैं।
rubynorails

21

SIGHUPNginx प्राप्त करने पर अद्यतन कॉन्फ़िगरेशन पुनः लोड करेगा, लॉग फ़ाइलों को खोलते समय और एसएसएल प्रमाणपत्र पढ़ते समय इसे सत्यापित करें , फिर पिछले कॉन्फ़िगरेशन पर निर्भर कार्यकर्ता प्रक्रियाओं को शालीनतापूर्वक बंद कर दें।

यदि ऐसा होता है कि nginx कुछ SSL प्रमाणपत्र नहीं पढ़ सकता है, तो मैं पुराने कॉन्फ़िगरेशन का उपयोग करके चलना जारी रखूंगा। अन्यथा, यह कार्य करेगा और अनुरोधों को संसाधित करने के लिए जारी रहेगा चाहे आपने अपनी कॉन्फ़िग फ़ाइलों में क्या किया हो। अगर वे टूट गए हैं, तब भी आपकी वेबसाइटें खुलेंगी।

तो हाँ, आपको nginx को पुनः आरंभ करने की आवश्यकता नहीं है और यदि आप अपडेट किए गए सेर्ट्स को देखना चाहते हैं तो nginx को कुछ सेकंड के लिए अपने सर्वर को ऑफ़लाइन रखना होगा। यह पर्याप्त होना चाहिए:

sudo service nginx reload

डिफ़ॉल्ट रूप से उपयोग किए जाने वाले सिस्टमड के साथ अधिकांश वर्तमान वितरणों में आप निम्नलिखित कमांड के साथ nginx को पुनः लोड कर सकते हैं:

sudo systemctl reload nginx

3
पर उबंटू 16 , CentOS 7 , और अन्य प्रणालियों का समर्थन systemdआप भी निष्पादित कर सकते हैं sudo systemctl reload nginx(जो sudo service nginx reloadकि ऊपर उल्लेख किया पर एलियास है)।
विले

@ आप सही हैं, लेकिन यह याद रखने के लिए एक और आदेश है; और हर जगह
सिस्टमड

मुझे करना अच्छा लगता है service nginx restart। मैं यह देखकर कभी नहीं थकती कि यह कितनी तेजी से पूरा होता है। हालांकि, अगर यह एक क्रॉन जॉब में है, और मैं इसमें से कोई भी नहीं देख रहा हूं, तो मैं किसी भी तरह के लगातार सत्र या लंबित ऑपरेशन को तोड़ने से बचने के लिए किसी तरह का पुनः लोड करूंगा।
रॉल्फ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.