bg-tutorials

Webmin पर CSR कैसे जनरेट करें

यह ट्यूटोरियल आपको दिखाता है Webmin पर CSR (Certificate Signing Request) कैसे जनरेट करें। Webmin, Linux सर्वर के लिए एक ब्राउज़र-आधारित कंट्रोल पैनल है, इसलिए CSR बनाने के लिए आपके पास दो व्यावहारिक तरीके हैं: Webmin के बिल्ट-इन SSL मॉड्यूल के जरिए (Webmin पैनल के लिए या Apache वर्चुअल होस्ट के लिए एक ग्राफिकल फॉर्म) या Webmin के बिल्ट-इन टर्मिनल के जरिए OpenSSL कमांड लाइन से। OpenSSL वाला तरीका सबसे लचीला है और एक ऐसी key और CSR बनाता है जिसे आप किसी भी वेब सर्वर (Apache, Nginx, Lighttpd, या Webmin द्वारा प्रबंधित कुछ भी) के साथ उपयोग कर सकते हैं।

नीचे दिए गए चरण आधुनिक Webmin 2.x और OpenSSL 3.x मानकर बनाए गए हैं, जो 2026 में समर्थित हर Linux डिस्ट्रीब्यूशन (Ubuntu 22.04 / 24.04 / 26.04, Debian 12 और 13, RHEL 9 और 10, Rocky 9 और 10, AlmaLinux 9 और 10, openSUSE Leap 15.6 और Tumbleweed) पर मौजूदा वर्जन हैं। आउटपुट एक मानक PEM-एन्कोडेड CSR होता है जो SHA-256 से साइन किया गया है, जिसे कोई भी सार्वजनिक Certificate Authority स्वीकार करती है।

चरण 1: Webmin में लॉगिन करें

अपने सर्वर के URL पर पोर्ट 10000 पर ब्राउज़र में Webmin खोलें:

https://yourwebsite.com:10000

yourwebsite.com को अपने सर्वर के होस्टनेम या IP पते से बदलें। पोर्ट 10000 डिफ़ॉल्ट Webmin पोर्ट है। root अकाउंट से या SSL प्रबंधित करने की अनुमति वाले Webmin यूज़र से साइन इन करें।

चरण 2: Webmin टर्मिनल खोलें

Webmin 2.x में एक बिल्ट-इन टर्मिनल आता है जिसका उपयोग आप अलग से SSH सेशन खोले बिना कर सकते हैं। बाईं पट्टी में, Refresh Modules लिंक के ठीक नीचे, Terminal आइकन (बाईं ओर से दूसरा आइकन) पर क्लिक करें, या इसे खोलने के लिए Alt + K दबाएँ। एक शेल प्रॉम्प्ट दिखाई देगा, जो उसी यूज़र के रूप में चल रहा होगा जिससे आपने साइन इन किया था।

यदि आप अपनी खुद की मशीन से सीधे SSH कनेक्शन पसंद करते हैं, तो उसी सर्वर से कनेक्ट करें और अगले चरण की कमांड वहीं चलाएँ। परिणाम बिल्कुल समान होगा।

चरण 3: OpenSSL से प्राइवेट key और CSR जनरेट करें

टर्मिनल में, नीचे दी गई कमांड चलाएँ। यह एक ही चरण में 2048-बिट RSA key और एक मिलती-जुलती CSR बनाती है, जिसमें subject और Subject Alternative Names (SANs) सीधे इनलाइन दिए गए हैं ताकि OpenSSL इंटरैक्टिव सवाल पूछने के लिए रुके नहीं:

sudo openssl req -new -newkey rsa:2048 -noenc 
-keyout /etc/ssl/private/yourwebsite.com.key 
-out /etc/ssl/private/yourwebsite.com.csr 
-subj "/C=US/ST=California/L=San Jose/O=Your Company LLC/CN=yourwebsite.com" 
-addext "subjectAltName=DNS:yourwebsite.com,DNS:www.yourwebsite.com"

Debian और Ubuntu पर, /etc/ssl/private/ डायरेक्टरी पहले से मौजूद होती है। RHEL, Rocky, AlmaLinux, और Fedora पर, परंपरा के अनुसार keys के लिए /etc/pki/tls/private/ और CSR के लिए /etc/pki/tls/certs/ होती है। ऐसे पथ चुनें जिन्हें आपका वेब सर्वर पढ़ सके, या फ़ाइलों को अपनी होम डायरेक्टरी में सेव करें और बाद में उन्हें ले जाएँ। यदि टारगेट डायरेक्टरी मौजूद नहीं है, तो पहले इसे sudo mkdir -p /etc/ssl/private से बनाएँ।

कमांड का हर हिस्सा क्या करता है:

  • -newkey rsa:2048 एक नई 2048-बिट RSA key जनरेट करता है। सार्वजनिक सर्टिफिकेट के लिए 2048-बिट अभी न्यूनतम मानक है। बड़ी key के लिए rsa:4096 का उपयोग करें, या ECDSA पर स्विच करें (नीचे देखें)।
  • -noenc प्राइवेट key को अनएन्क्रिप्टेड छोड़ता है ताकि वेब सर्वर स्टार्टअप पर बिना किसी पासफ्रेज़ प्रॉम्प्ट के इसे पढ़ सके। (OpenSSL 1.x पर इसके बराबर फ्लैग -nodes है; दोनों OpenSSL 3.x में काम करते हैं।)
  • -keyout और -out क्रमशः प्राइवेट key फ़ाइल और CSR फ़ाइल का नाम तय करते हैं।
  • -subj सर्टिफिकेट का subject इनलाइन देता है। उदाहरण मानों को अपने वास्तविक विवरण से बदलें:
    • C: वह दो-अक्षर वाला देश कोड जहाँ आपका संगठन कानूनी रूप से पंजीकृत है (उदाहरण के लिए, US)।
    • ST: राज्य या प्रांत का पूरा नाम (उदाहरण के लिए, California), बिना किसी संक्षेप के।
    • L: शहर या कस्बे का पूरा नाम (उदाहरण के लिए, San Jose)।
    • O: कानूनी संगठन का नाम। Domain Validation (DV) सर्टिफिकेट के लिए, इसे छोड़ दें या इसे अपने डोमेन पर सेट करें।
    • CN: उस साइट का Fully Qualified Domain Name (FQDN) जिसे आप सुरक्षित करना चाहते हैं (उदाहरण के लिए, yourwebsite.com)।
  • -addext “subjectAltName=…” हर उस होस्टनेम को सूचीबद्ध करता है जिसे सर्टिफिकेट को कवर करना चाहिए। सार्वजनिक CA SAN सूची के अनुसार सत्यापन करते हैं, इसलिए यहाँ Common Name को भी शामिल करें। वाइल्डकार्ड के लिए, वाइल्डकार्ड और एपेक्स दोनों को शामिल करें: DNS:*.yourwebsite.com,DNS:yourwebsite.com। वाइल्डकार्ड एक सबडोमेन स्तर को कवर करते हैं और अपने आप एपेक्स से मेल नहीं खाते।

यदि आप ECDSA key पसंद करते हैं (जो छोटी और तेज़ होती है, और P-256 व्यापक रूप से समर्थित है), तो इसके बजाय इस वैरिएंट का उपयोग करें:

sudo openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -noenc 
-keyout /etc/ssl/private/yourwebsite.com.key 
-out /etc/ssl/private/yourwebsite.com.csr 
-subj "/C=US/ST=California/L=San Jose/O=Your Company LLC/CN=yourwebsite.com" 
-addext "subjectAltName=DNS:yourwebsite.com,DNS:www.yourwebsite.com"

हर लाइन के अंत में बैकस्लैश एक शेल लाइन कंटीन्यूएशन है, इसलिए यह कमांड पठनीयता के लिए कई लाइनों में विभाजित एक ही तार्किक निर्देश बना रहता है। यदि आपका टर्मिनल मल्टी-लाइन फॉर्म को ठीक से हैंडल नहीं करता, तो पूरी कमांड को एक ही लाइन में पेस्ट करें।

चरण 4: प्राइवेट key को सुरक्षित रखें

यह पुष्टि करने के लिए डायरेक्टरी की सूची देखें कि दोनों फ़ाइलें बन गई हैं:

sudo ls -l /etc/ssl/private/yourwebsite.com.*

आपको दो नई फ़ाइलें दिखनी चाहिए:

  • yourwebsite.com.key: प्राइवेट key। इसे सर्वर पर ही रहना चाहिए, इसे कभी भी Certificate Authority को नहीं भेजा जाना चाहिए, और इसे कभी भी ईमेल या किसी फॉर्म में पेस्ट नहीं करना चाहिए। जिसके पास भी यह key है, वह आपकी साइट का रूप धारण कर सकता है।
  • yourwebsite.com.csr: Certificate Signing Request। यही एकमात्र फ़ाइल है जो आप SSL प्रोवाइडर को सबमिट करते हैं।

प्राइवेट key की permissions को सीमित करें ताकि इसे केवल root ही पढ़ सके:

sudo chmod 600 /etc/ssl/private/yourwebsite.com.key

SELinux सक्षम डिस्ट्रीब्यूशन (RHEL, Rocky, AlmaLinux, Fedora) पर, key को उसके अंतिम स्थान पर ले जाने के बाद सही SELinux कॉन्टेक्स्ट फिर से लागू करें, उदाहरण के लिए sudo restorecon -Rv /etc/pki/tls/

चरण 5: CSR को सत्यापित करें (वैकल्पिक लेकिन अनुशंसित)

CSR सबमिट करने से पहले, पुष्टि करें कि इसमें सही subject और SANs हैं और इसका सिग्नेचर वैध है:

openssl req -noout -text -verify -in /etc/ssl/private/yourwebsite.com.csr

जाँच करें कि Subject लाइन आपके विवरण से मेल खाती है, कि X509v3 Subject Alternative Name उन सभी होस्टनेम को सूचीबद्ध करता है जिनकी आपको अपेक्षा है, और सिग्नेचर जाँच में verify OK प्रिंट होता है। सिग्नेचर एल्गोरिदम में sha256WithRSAEncryption लिखा होना चाहिए (या ECDSA key के लिए ecdsa-with-SHA256)। यदि आप कमांड लाइन का उपयोग नहीं करना चाहते, तो ब्राउज़र में वही फ़ील्ड पढ़ने के लिए CSR टेक्स्ट को हमारे ऑनलाइन CSR decoder में पेस्ट करें।

चरण 6: CSR को कॉपी और सबमिट करें

CSR को प्रिंट करें ताकि आप उसे कॉपी कर सकें:

sudo cat /etc/ssl/private/yourwebsite.com.csr

आपको इस तरह का एक टेक्स्ट ब्लॉक दिखेगा:

-----BEGIN CERTIFICATE REQUEST-----
MIIBozCB... (a long string of characters)
-----END CERTIFICATE REQUEST-----

पूरा ब्लॉक कॉपी करें, जिसमें —–BEGIN CERTIFICATE REQUEST—– और —–END CERTIFICATE REQUEST—– लाइनें भी शामिल हों (हर मार्कर के दोनों ओर पाँच हाइफ़न होते हैं)। जब आप अपना SSL सर्टिफिकेट खरीदें, तो इसे ऑर्डर फॉर्म में पेस्ट करें, और मिलती-जुलती प्राइवेट key को सर्वर पर ही रहने दें।

Webmin के ग्राफिकल मॉड्यूल के जरिए CSR जनरेट करें

यदि आप कमांड लाइन से बचना चाहते हैं, तो Webmin में दो ग्राफिकल फॉर्म शामिल हैं जो आपके लिए CSR बनाते हैं। वह चुनें जो सर्टिफिकेट के उद्देश्य से मेल खाता हो।

Apache वर्चुअल होस्ट (आपकी वेबसाइट) के लिए

  • Servers > Apache Webserver पर जाएँ।
  • Global Configuration टैब खोलें, Configure Apache Modules पर क्लिक करें, ssl मॉड्यूल को टिक करें, और यदि पहले से चालू न हो तो Enable Selected Modules पर क्लिक करें।
  • Existing virtual hosts टैब पर, पोर्ट 443 वर्चुअल होस्ट को उसके globe आइकन पर क्लिक करके खोलें (या नया बनाएँ)।
  • Virtual Server Options पेज पर, SSL Options चुनें, फिर Create signing request पर क्लिक करें।
  • फॉर्म भरें (देश, राज्य, शहर, संगठन, common name, ईमेल, key का आकार 2048 या अधिक, और कोई भी Subject Alternative Names), Webmin को .csr और .key फ़ाइलें कहाँ लिखनी हैं यह चुनें, और Create Now पर क्लिक करें।

दोनों फ़ाइलें आपके द्वारा निर्दिष्ट पथों पर दिखाई देंगी। अपने ऑर्डर के लिए .csr का उपयोग करें और .key को सर्वर पर रखें।

खुद Webmin पैनल (पोर्ट 10000) के लिए

यदि आपको केवल Webmin लॉगिन इंटरफेस के लिए सर्टिफिकेट चाहिए, न कि किसी वेबसाइट के लिए, तो Webmin कॉन्फ़िगरेशन मॉड्यूल से CSR जनरेट करें:

  • Webmin > Webmin Configuration > SSL Encryption पर जाएँ।
  • Create Signing Request टैब खोलें।
  • होस्ट नेम (वह सार्वजनिक नाम जिससे आप Webmin तक पहुँचते हैं), देश, राज्य, शहर, संगठन, ईमेल, और key का आकार भरें, फिर Create पर क्लिक करें।

Webmin रिक्वेस्ट और मिलती-जुलती key को /etc/webmin/ के तहत लिखता है। CA द्वारा जारी सर्टिफिकेट लौटाए जाने के बाद, इसे उसी SSL Encryption पेज से इंस्टॉल करें ताकि यह डिफ़ॉल्ट /etc/webmin/miniserv.pem फ़ाइल की जगह ले सके।

सर्टिफिकेट प्राप्त होने के बाद

एक बार जब Certificate Authority आपके CSR को सत्यापित कर देती है और सर्टिफिकेट जारी करती है, तो इसे सर्वर पर इंस्टॉल करें। सटीक चरण इस बात पर निर्भर करते हैं कि सर्टिफिकेट किस सेवा के लिए है:

यदि आप अपने ब्राउज़र में चलने वाला पूरी तरह ग्राफिकल वर्कफ़्लो पसंद करते हैं, तो आप हमारे ऑनलाइन CSR Generator से भी CSR बना सकते हैं। यह आपके ब्राउज़र में प्राइवेट key जनरेट करता है, इसलिए key को खुद सेव करें और इंस्टॉल पूरा करने से पहले इसे सर्वर पर ले जाएँ।

अक्सर पूछे जाने वाले प्रश्न

Webmin CSR और प्राइवेट key कहाँ स्टोर करता है?

जहाँ आप उसे बताते हैं, वहीं। OpenSSL कमांड के साथ, फ़ाइलें उन पथों पर लिखी जाती हैं जो आप -keyout और -out के साथ पास करते हैं। Apache मॉड्यूल के Create signing request फॉर्म के साथ, आप फॉर्म में ही आउटपुट पथ चुनते हैं। Webmin > Webmin Configuration > SSL Encryption के साथ, Webmin उन्हें /etc/webmin/ के तहत लिखता है। Debian और Ubuntu पर, keys के लिए पारंपरिक जगह /etc/ssl/private/ है; RHEL, Rocky, AlmaLinux, और Fedora पर यह /etc/pki/tls/private/ है।

क्या मुझे Webmin के टर्मिनल का ही उपयोग करना होगा, या मैं SSH कर सकता हूँ?

दोनों काम करते हैं। Webmin का बिल्ट-इन टर्मिनल (बाईं पट्टी में आइकन, या Alt + K) सुविधाजनक है क्योंकि आप पहले से साइन इन हैं, लेकिन सामान्य SSH सेशन पर चलाई गई वही OpenSSL कमांड बिल्कुल समान CSR और key बनाती है। जो भी आपको आसान लगे उसका उपयोग करें।

-noenc और -nodes में क्या अंतर है?

दोनों एक ही काम करते हैं: OpenSSL को बताते हैं कि प्राइवेट key को डिस्क पर अनएन्क्रिप्टेड छोड़ा जाए ताकि वेब सर्वर स्टार्टअप पर बिना किसी पासफ्रेज़ प्रॉम्प्ट के इसे पढ़ सके। -nodes ऐतिहासिक नाम है और OpenSSL 3.x में अभी भी काम करता है। -noenc OpenSSL 3.0 में शुरू किया गया नया विकल्प है और आगे इसी का उपयोग पसंद किया जाता है। जो भी आपकी आदत में हो, उसका उपयोग करें।

क्या Webmin से मिली CSR किसी अन्य टूल से मिली CSR जैसी ही होती है?

हाँ। CSR एक मानक PEM-एन्कोडेड रिक्वेस्ट है जिसे PKCS #10 द्वारा परिभाषित किया गया है, और कोई भी CA इसे साइन कर सकता है, चाहे यह कहीं भी बनाई गई हो। Webmin के टर्मिनल में, Apache मॉड्यूल के Create signing request फॉर्म के जरिए, या हमारे ऑनलाइन CSR Generator से जनरेट की गई CSR, सभी एक जैसी फ़ाइल बनाती हैं। महत्वपूर्ण यह है कि उसी समय बनाई गई प्राइवेट key उसी सर्वर पर रहे जहाँ आप सर्टिफिकेट इंस्टॉल करने की योजना बना रहे हैं।

आज ऑर्डर करते समय एसएसएल प्रमाणपत्रों पर 10% की बचत करें!

तेजी से जारी करना, मजबूत एन्क्रिप्शन, 99.99% ब्राउज़र ट्रस्ट, समर्पित समर्थन और 25 दिन की मनी-बैक गारंटी। कूपन कोड: SAVE10

उड़ान में एक ड्रैगन की एक विस्तृत छवि
द्वारा लिखित

एसएसएल प्रमाणपत्रों में विशेषज्ञता वाला अनुभवी सामग्री लेखक। जटिल साइबर सुरक्षा विषयों को स्पष्ट, आकर्षक सामग्री में बदलना। प्रभावशाली आख्यानों के माध्यम से डिजिटल सुरक्षा को बेहतर बनाने में योगदान करें।