यह ट्यूटोरियल आपको दिखाता है lighttpd पर CSR कैसे जनरेट करें, उसी सर्वर पर OpenSSL कमांड लाइन का उपयोग करते हुए जो lighttpd वेब सर्वर चला रहा है। आप एक ही कमांड में दो फ़ाइलें बनाएंगे: एक नई प्राइवेट की और उससे मेल खाता CSR (सर्टिफिकेट साइनिंग रिक्वेस्ट) जिसे आप अपने सर्टिफिकेट अथॉरिटी को सबमिट करते हैं।
नीचे दिए गए चरण lighttpd पैकेज करने वाले हर आधुनिक Linux डिस्ट्रिब्यूशन (Debian, Ubuntu, RHEL, AlmaLinux, Rocky Linux, Fedora, openSUSE, Alpine) पर काम करते हैं, क्योंकि हर एक में OpenSSL 1.1.1 या OpenSSL 3.x शामिल है। दोनों वर्शन डिफ़ॉल्ट रूप से रिक्वेस्ट को SHA-256 से साइन करते हैं, इसलिए आपको कोई digest फ्लैग जोड़ने की आवश्यकता नहीं है। यही कमांड FreeBSD और lighttpd वाले macOS पर भी काम करती है।
चरण 1: अपने lighttpd सर्वर से कनेक्ट करें
macOS या Linux पर Terminal खोलें, या Windows पर PowerShell या Windows Terminal खोलें, और SSH के जरिए सर्वर से कनेक्ट करें। यूजर नाम और होस्ट को अपने खुद के से बदलें:
ssh your-user@your-lighttpd-server
CSR को उसी सर्वर पर जनरेट करें जो सर्टिफिकेट को होस्ट करेगा। प्राइवेट की, CSR के साथ ही बनाई जाती है और उसे उसी सर्वर पर रहना चाहिए, इसलिए अपने लैपटॉप पर कमांड चलाना और फिर की को इधर-उधर कॉपी करना उद्देश्य को विफल कर देता है। आप एक अलग डायरेक्टरी में काम करना भी चाह सकते हैं जिसे बाद में आसानी से ढूंढा जा सके, उदाहरण के लिए:
sudo mkdir -p /etc/lighttpd/ssl
cd /etc/lighttpd/ssl
चरण 2: प्राइवेट की और CSR जनरेट करें
यदि आपने पहले से किसी अन्य टूल से अपना CSR जनरेट कर लिया है, तो सीधे lighttpd पर सर्टिफिकेट इंस्टॉल करने पर जाएं।
निम्नलिखित OpenSSL कमांड चलाएं। यह एक ही चरण में 2048-बिट RSA की और एक CSR बनाती है, जिसमें subject और Subject Alternative Names (SANs) इनलाइन दिए गए हैं ताकि OpenSSL सवाल पूछने के लिए न रुके:
openssl req -new -newkey rsa:2048 -nodes
-keyout yourdomain.key
-out yourdomain.csr
-subj "/C=US/ST=YourState/L=YourCity/O=YourCompany/CN=yourdomain.com"
-addext "subjectAltName=DNS:yourdomain.com,DNS:www.yourdomain.com"
हर हिस्सा क्या करता है:
- -newkey rsa:2048 एक नई 2048-बिट RSA की जनरेट करती है। सार्वजनिक सर्टिफिकेट्स के लिए वर्तमान न्यूनतम 2048-बिट है; आप बड़ी की के लिए rsa:4096 का उपयोग कर सकते हैं, या ECDSA पर स्विच कर सकते हैं (नीचे देखें)।
- -nodes प्राइवेट की को अनएन्क्रिप्टेड छोड़ देता है ताकि lighttpd स्टार्टअप पर बिना पासफ्रेज प्रॉम्प्ट के इसे पढ़ सके।
- -keyout और -out प्राइवेट की और CSR फ़ाइलों के नाम निर्धारित करते हैं।
- -subj सर्टिफिकेट का subject प्रदान करता है। यहां प्लेसहोल्डर की बजाय अपनी असली कंपनी का नाम, राज्य और शहर डालें। CN (Common Name) आपका प्राइमरी डोमेन है।
- -addext “subjectAltName=…” हर उस होस्टनेम को सूचीबद्ध करता है जिसे सर्टिफिकेट कवर करना चाहिए। सार्वजनिक CAs SAN सूची के विरुद्ध वेरिफाई करते हैं, इसलिए यहां Common Name को भी शामिल करें।
पूरे कमांड में yourdomain.com को अपने वास्तविक डोमेन से बदलें। अतिरिक्त होस्टनेम कवर करने के लिए, उन्हें कॉमा से अलग करके SAN सूची में जोड़ें, उदाहरण के लिए DNS:api.yourdomain.com। वाइल्डकार्ड सर्टिफिकेट के लिए, वाइल्डकार्ड और सामान्य डोमेन दोनों शामिल करें: DNS:*.yourdomain.com,DNS:yourdomain.com। subject फील्ड्स में केवल अल्फान्यूमेरिक कैरेक्टर्स का उपयोग करें, और C फील्ड के लिए आधिकारिक दो-अक्षर वाला देश कोड इस्तेमाल करें।
यदि आप ECDSA की (छोटी और तेज़, जिसमें P-256 व्यापक रूप से समर्थित है) पसंद करते हैं, तो इसके बजाय की और CSR इस तरह जनरेट करें:
openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -pkeyopt ec_param_enc:named_curve -nodes
-keyout yourdomain.key
-out yourdomain.csr
-subj "/C=US/ST=YourState/L=YourCity/O=YourCompany/CN=yourdomain.com"
-addext "subjectAltName=DNS:yourdomain.com,DNS:www.yourdomain.com"
lighttpd mod_openssl के माध्यम से RSA और ECDSA दोनों सर्टिफिकेट्स को सपोर्ट करता है, और आप ssl.pemfile तथा ssl.privkey डायरेक्टिव्स के दो जोड़े सूचीबद्ध करके एक ही सॉकेट पर दोनों सर्व कर सकते हैं।
यदि आप एक-एक करके फील्ड के प्रॉम्प्ट्स का जवाब देना पसंद करते हैं, तो openssl req -new -newkey rsa:2048 -nodes -keyout yourdomain.key -out yourdomain.csr बिना -subj और बिना -addext के चलाएं। OpenSSL बारी-बारी से हर फील्ड के बारे में पूछेगा। जब वह पूछे:
- Country Name (C): आपके देश का दो-अक्षर वाला ISO कोड, उदाहरण के लिए US या GB। बिजनेस वैलिडेशन या एक्सटेंडेड वैलिडेशन सर्टिफिकेट्स के लिए, यह आपके संगठन के पंजीकरण का आधिकारिक देश होना चाहिए।
- State or Province Name (ST): पूरा नाम, उदाहरण के लिए Tennessee। संक्षिप्त रूप न लिखें।
- Locality Name (L): शहर या नगर, उदाहरण के लिए Nashville।
- Organization Name (O): आपकी कंपनी का आधिकारिक पंजीकृत नाम, उदाहरण के लिए Your Company LLC। डोमेन वैलिडेशन सर्टिफिकेट्स के लिए आप NA दर्ज कर सकते हैं।
- Organizational Unit Name (OU): यह फील्ड अप्रचलित है और सार्वजनिक CAs द्वारा इसे नज़रअंदाज़ किया जाता है। Enter दबाकर इसे खाली छोड़ दें।
- Common Name (CN): वह Fully Qualified Domain Name जिसके लिए सर्टिफिकेट है, उदाहरण के लिए www.yourdomain.com। वाइल्डकार्ड के लिए *.yourdomain.com का उपयोग करें।
- Email Address: वैकल्पिक है और सार्वजनिक CAs इसका उपयोग नहीं करते। आप इसे खाली छोड़ सकते हैं।
- A challenge password और An optional company name: दोनों ही पुराने एट्रिब्यूट हैं जिन्हें सार्वजनिक CAs नज़रअंदाज़ करते हैं। इन्हें खाली छोड़ दें।
-addext फ्लैग के बिना बनने वाले CSR में कोई SAN एंट्री नहीं होगी। सार्वजनिक CAs SAN सूची के विरुद्ध वेरिफाई करते हैं और इसके बिना रिक्वेस्ट को अस्वीकार (या चुपचाप ओवरराइड) कर देंगे, इसलिए ऊपर दिया गया इनलाइन -subj प्लस -addext वाला कमांड ही अनुशंसित तरीका है।
चरण 3: अपनी फ़ाइलों का पता लगाएं
यह पुष्टि करने के लिए कि दोनों फ़ाइलें बन गई हैं, वर्तमान डायरेक्टरी की सूची देखें:
ls
आपको दो नई फ़ाइलें दिखनी चाहिए:
- yourdomain.key: आपकी प्राइवेट की। इसे सर्वर पर ही रखें, इसका सुरक्षित बैकअप लें, और इसे कभी किसी को न भेजें, सर्टिफिकेट अथॉरिटी को भी नहीं। जिसके पास भी यह की है वह आपकी साइट का रूप धारण कर सकता है।
- yourdomain.csr: आपका सर्टिफिकेट साइनिंग रिक्वेस्ट। यह वह फ़ाइल है जिसे आप SSL प्रोवाइडर को सबमिट करते हैं।
प्राइवेट की को इस तरह प्रतिबंधित करें कि केवल फ़ाइल का मालिक ही उसे पढ़ सके:
chmod 600 yourdomain.key
चरण 4: CSR की पुष्टि करें (वैकल्पिक लेकिन अनुशंसित)
सबमिट करने से पहले, जांच लें कि CSR में सही subject और SANs शामिल हैं और इसका सिग्नेचर मान्य है। यह OpenSSL के साथ रिक्वेस्ट को स्थानीय रूप से डिकोड करता है:
openssl req -noout -text -verify -in yourdomain.csr
पुष्टि करें कि Subject लाइन में आपका विवरण दिखता है, कि X509v3 Subject Alternative Name उन सभी होस्टनेम को सूचीबद्ध करता है जिनकी आप अपेक्षा करते हैं, और सिग्नेचर जांच verify OK प्रिंट करती है। सिग्नेचर एल्गोरिदम sha256WithRSAEncryption (या ECDSA की के लिए ecdsa-with-SHA256) होना चाहिए। यदि आप कमांड लाइन का उपयोग नहीं करना चाहते, तो हमारे ऑनलाइन CSR Decoder में CSR पेस्ट करके ब्राउज़र में वही फील्ड्स पढ़ें।
चरण 5: अपना CSR सबमिट करें
अपने ऑर्डर के लिए CSR कॉपी करने हेतु, इसकी सामग्री प्रिंट करें:
cat yourdomain.csr
आपको इस तरह का एक टेक्स्ट ब्लॉक दिखेगा:
-----BEGIN CERTIFICATE REQUEST-----
MIICyzCCAbMCAQAwTDELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMQsw...
...(many more lines of base64 characters)...
-----END CERTIFICATE REQUEST-----
पूरा ब्लॉक कॉपी करें, जिसमें —–BEGIN CERTIFICATE REQUEST—– और —–END CERTIFICATE REQUEST—– लाइनें भी शामिल हैं (हर मार्कर के दोनों तरफ पांच हाइफन होते हैं)। वह पूरा ब्लॉक ही आपका CSR है। इसे अपनी खरीद के दौरान ऑर्डर फॉर्म में पेस्ट करें, और उससे मेल खाती प्राइवेट की को सर्वर पर ही रखें।
यदि आप कमांड लाइन का उपयोग नहीं करना चाहते, तो आप हमारे ऑनलाइन CSR Generator से भी रिक्वेस्ट बना सकते हैं। ध्यान दें कि यह आपके ब्राउज़र में प्राइवेट की जनरेट करता है, इसलिए उस की को खुद सेव करें और उसे सर्वर पर स्थानांतरित करें।
आपके CA द्वारा रिक्वेस्ट वेरिफाई करने के बाद, आपको अपना सर्टिफिकेट मिल जाएगा। वैलिडेशन लेवल के आधार पर, इसमें डोमेन वैलिडेशन के लिए कुछ मिनट लगते हैं, या बिजनेस वैलिडेशन और एक्सटेंडेड वैलिडेशन के लिए कई कार्य दिवस तक लग सकते हैं।
चरण 6: lighttpd पर सर्टिफिकेट इंस्टॉल करें
जब सर्टिफिकेट आ जाए, तो जारी किए गए सर्टिफिकेट और उसकी इंटरमीडिएट चेन को प्राइवेट की के साथ सर्वर पर रखें, फिर अपने TLS सॉकेट ब्लॉक में lighttpd को उनकी ओर इंगित करें। वर्तमान lighttpd में TLS सपोर्ट mod_openssl में है, और अनुशंसित फॉर्मेट (lighttpd 1.4.53 के ssl.privkey पेश करने के बाद से) सर्टिफिकेट प्लस चेन को एक फ़ाइल में और प्राइवेट की को एक अलग फ़ाइल में रखता है:
server.modules += ( "mod_openssl" )
$SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.pemfile = "/etc/lighttpd/ssl/yourdomain.fullchain.pem"
ssl.privkey = "/etc/lighttpd/ssl/yourdomain.key"
}
ssl.pemfile फ़ाइल में आपका सर्टिफिकेट होना चाहिए जिसके बाद इंटरमीडिएट सर्टिफिकेट्स आते हैं (इसे cat yourdomain.crt yourdomain.ca-bundle > yourdomain.fullchain.pem से बनाएं)। पुराना सिंगल-फ़ाइल फॉर्मेट जो सर्टिफिकेट और प्राइवेट की को एक ही ssl.pemfile में जोड़ता था, पुराने बिल्ड्स पर अब भी काम करता है, लेकिन अलग-फ़ाइल वाला फॉर्म इस बात से मेल खाता है कि सर्टिफिकेट अथॉरिटीज फ़ाइलें कैसे डिलीवर करती हैं और यही दस्तावेज़ीकृत सिफारिश है। कॉन्फ़िगरेशन का परीक्षण sudo lighttpd -t -f /etc/lighttpd/lighttpd.conf से करें और बदलाव लागू करने के लिए lighttpd को पुनः आरंभ करें। पूरी वर्कफ़्लो के लिए, हमारी गाइड देखें lighttpd पर SSL सर्टिफिकेट कैसे इंस्टॉल करें।
आज ऑर्डर करते समय एसएसएल प्रमाणपत्रों पर 10% की बचत करें!
तेजी से जारी करना, मजबूत एन्क्रिप्शन, 99.99% ब्राउज़र ट्रस्ट, समर्पित समर्थन और 25 दिन की मनी-बैक गारंटी। कूपन कोड: SAVE10


