bg-tutorials

Red Hat Linux पर CSR कैसे जनरेट करें

यह गाइड आपको दिखाता है कि OpenSSL कमांड लाइन का उपयोग करके Red Hat Enterprise Linux पर CSR (Certificate Signing Request) कैसे जनरेट करें। इस प्रक्रिया से दो फाइलें बनती हैं:

  • एक प्राइवेट की (private key), जो आपके सर्वर पर ही रहती है और कभी शेयर नहीं की जाती।
  • एक CSR, जिसे आप सर्टिफिकेट ऑर्डर करते समय अपने Certificate Authority (CA) को भेजते हैं।

इसमें दो तरीके बताए गए हैं: आधुनिक OpenSSL के लिए एक सिंगल-कमांड तरीका, और पुराने OpenSSL वर्शन के लिए एक कॉन्फिग-फाइल तरीका जो इनलाइन एक्सटेंशन को सपोर्ट नहीं करते। दोनों तरीके SHA-256 से साइन किया गया SAN-कम्प्लायंट CSR बनाते हैं, जो कि पब्लिक CA के लिए आवश्यक होता है।

शुरू करने से पहले: अपना OpenSSL वर्शन जांचें

OpenSSL हर सपोर्टेड RHEL रिलीज़ में डिफॉल्ट रूप से शामिल होता है। इसकी मौजूदगी की पुष्टि करें और वर्शन जांचें, क्योंकि वर्शन के आधार पर ही तय होता है कि आप नीचे दिए गए किस तरीके का उपयोग कर सकते हैं:

openssl version

हर मौजूदा Red Hat रिलीज़ में क्या शामिल है:

  • RHEL 10 (2025 में रिलीज़ हुआ, मौजूदा मुख्य वर्शन): OpenSSL 3.x
  • RHEL 9: OpenSSL 3.x
  • RHEL 8: OpenSSL 1.1.1
  • RHEL 7: OpenSSL 1.0.2 (RHEL 7 का मेंटेनेंस सपोर्ट 2024 में समाप्त हो गया था; जब संभव हो, इन वर्कलोड को किसी सपोर्टेड रिलीज़ पर स्थानांतरित करें)

OpenSSL 1.1.1 और 3.x, एक-कमांड तरीके में उपयोग किए गए इनलाइन एक्सटेंशन फ्लैग को सपोर्ट करते हैं, इसलिए RHEL 8, 9, और 10 पर आप नीचे दिया गया विकल्प A उपयोग कर सकते हैं। यदि openssl version 1.0.2 या इससे पुराना (RHEL 7) दिखाता है, तो विकल्प B में दिया गया कॉन्फिग-फाइल तरीका उपयोग करें।

यदि किसी कारण OpenSSL मौजूद नहीं है, तो अपने रिलीज़ के लिए पैकेज मैनेजर से इसे इंस्टॉल करें:

# RHEL 8, 9, and 10
sudo dnf install openssl
# RHEL 7
sudo yum install openssl

RHEL 8 और उसके बाद के वर्शन पर, yum, dnf के लिए एक कम्पेटिबिलिटी उपनाम है, इसलिए इन वर्शन पर दोनों में से कोई भी कमांड काम करता है।

विकल्प A: एक कमांड (OpenSSL 1.1.1 और 3.x)

यह RHEL 8, 9, और 10 पर सबसे तेज़ तरीका है। यह पहले प्राइवेट की जनरेट करता है, फिर इनलाइन जोड़े गए Subject Alternative Names (SANs) के साथ CSR बनाता है।

चरण 1: प्राइवेट की जनरेट करें

openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out example.com.key

यह मौजूदा डायरेक्टरी में example.com.key नाम की एक 2048-बिट RSA प्राइवेट की बनाता है। पब्लिक CA द्वारा स्वीकार किया जाने वाला न्यूनतम स्तर 2048-बिट RSA है; इसके बजाय एक आधुनिक elliptic-curve की के लिए, algorithm विकल्पों को -algorithm EC -pkeyopt ec_paramgen_curve:P-256 से बदल दें। इस फाइल को गुप्त रखें: यह आपके सर्वर पर ही रहती है और कभी CA को नहीं भेजी जाती।

चरण 2: SAN के साथ CSR बनाएं

नीचे दिया गया कमांड चलाएं, subject फील्ड और डोमेन नामों को अपने अनुसार समायोजित करते हुए:

openssl req -new -sha256 -key example.com.key -out example.com.csr 
-subj "/C=US/ST=California/L=San Jose/O=Your Company LLC/CN=example.com" 
-addext "subjectAltName=DNS:example.com,DNS:www.example.com"

हर जगह example.com को अपने वास्तविक डोमेन से बदलें, और subject फील्ड को अपनी जानकारी के अनुसार सेट करें:

  • C: दो-अक्षर वाला देश कोड (उदाहरण के लिए, US)।
  • ST: राज्य या प्रांत का पूरा नाम।
  • L: शहर या स्थान।
  • O: कानूनी संगठन का नाम (एक सिंगल-डोमेन DV सर्टिफिकेट के लिए इसे छोड़ा जा सकता है)।
  • CN: प्राथमिक पूर्णतया योग्य डोमेन नाम, उदाहरण के लिए www.example.com।

सर्टिफिकेट को कवर करने वाले हर होस्ट नाम को subjectAltName वैल्यू में सूचीबद्ध करें। आधुनिक ब्राउज़र Common Name के बदले SAN सूची के विरुद्ध सत्यापन करते हैं, इसलिए प्राथमिक डोमेन सहित हर नाम को वहां शामिल करें। यह कमांड CSR को example.com.csr में लिखता है।

विकल्प B: कॉन्फिग फाइल तरीका (पुराना OpenSSL)

यदि openssl version ऐसा बिल्ड दिखाता है जो -addext फ्लैग को सपोर्ट नहीं करता (OpenSSL 1.0.2 और इससे पुराना, जैसे RHEL 7 पर), तो इसके बदले SAN को एक छोटी कॉन्फिगरेशन फाइल में परिभाषित करें।

चरण 1: एक कॉन्फिग फाइल बनाएं (san.cnf)

एक टेक्स्ट एडिटर से san.cnf नाम की फाइल बनाएं और नीचे दिया गया कंटेंट पेस्ट करें, अपने डोमेन और संगठन के लिए वैल्यू संपादित करते हुए:

[ req ]
default_bits = 2048
prompt = no
distinguished_name = dn
req_extensions = req_ext

[ dn ]
C = US
ST = California
L = San Jose
O = Your Company LLC
CN = example.com

[ req_ext ]
subjectAltName = @alt_names

[ alt_names ]
DNS.1 = example.com
DNS.2 = www.example.com

नंबरिंग जारी रखकर और होस्ट नाम जोड़ें: DNS.3, DNS.4, इत्यादि।

चरण 2: की और CSR जनरेट करें

प्राइवेट की जनरेट करें:

openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out example.com.key

फिर कॉन्फिग फाइल का उपयोग करके CSR बनाएं:

openssl req -new -sha256 -key example.com.key -out example.com.csr -config san.cnf

CSR को सत्यापित करें

इसे सबमिट करने से पहले, पुष्टि करें कि CSR में सही जानकारी और एक वैलिड सिग्नेचर है। यह कमांड subject, SAN सूची, की का साइज़ प्रिंट करता है, और रिक्वेस्ट के सेल्फ-सिग्नेचर को सत्यापित करता है:

openssl req -noout -text -verify -in example.com.csr

जांचें कि Subject लाइन और X509v3 Subject Alternative Name प्रविष्टियां आपके द्वारा अपेक्षित हर डोमेन को सूचीबद्ध करती हैं, कि पब्लिक की कम से कम 2048-बिट RSA (या एक P-256 elliptic-curve की) है, और कि सिग्नेचर एल्गोरिथ्म SHA-256 है। certificate request self-signature verify OK लिखी लाइन (पुराने बिल्ड में verify OK लिखा होता है) का मतलब है कि CSR और प्राइवेट की मैच करते हैं। यदि आप ब्राउज़र पसंद करते हैं, तो वही जानकारी देखने के लिए हमारे ऑनलाइन CSR डिकोडर में CSR पेस्ट करें।

CSR सबमिट करें

example.com.csr फाइल को एक टेक्स्ट एडिटर में खोलें और इसकी पूरी सामग्री कॉपी करें, जिसमें -----BEGIN CERTIFICATE REQUEST----- और -----END CERTIFICATE REQUEST----- मार्कर लाइनें भी शामिल हैं (हर मार्कर दोनों तरफ पांच हाइफ़न का उपयोग करता है)। अपने SSL वेंडर से सर्टिफिकेट का रिक्वेस्ट करते समय पूरे ब्लॉक को ऑर्डर फॉर्म में पेस्ट करें।

प्राइवेट की, example.com.key, को सर्वर पर ही रखें। इसे CA को न भेजें और कहीं भी पेस्ट न करें: यह जोड़ी का गुप्त हिस्सा है और इसे कभी भी आपके नियंत्रण से बाहर नहीं जाना चाहिए। CA द्वारा CSR को सत्यापित करने और सर्टिफिकेट जारी करने के बाद, इसे इंस्टॉल करने के लिए हमारे Red Hat Linux SSL इंस्टॉलेशन निर्देश का पालन करें।

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

जब मैं RHEL पर CSR जनरेट करता हूं तो प्राइवेट की कहां स्टोर होती है?

प्राइवेट की उस फाइल में लिखी जाती है जिसका नाम आप -out विकल्प में देते हैं (उदाहरण के लिए, example.com.key), उस डायरेक्टरी में जहां आपने कमांड चलाया था। यह लोकल रूप से बनाई जाती है और कभी CSR में शामिल नहीं होती। इसे किसी सुरक्षित स्थान पर बैकअप रखें और इसकी परमिशन को सीमित करें, क्योंकि CA द्वारा जारी किए गए सर्टिफिकेट को इंस्टॉल करने के लिए आपको यही की चाहिए होगी।

क्या मुझे की के लिए RSA या ECDSA का उपयोग करना चाहिए?

दोनों ही स्वीकार्य हैं। 2048-बिट RSA व्यापक रूप से कम्पेटिबल डिफॉल्ट है और पब्लिक CA द्वारा अनुमत न्यूनतम स्तर है। एक elliptic-curve की (ECDSA P-256) छोटी और तेज़ होती है, वहीं समान सुरक्षा प्रदान करती है; इसे बनाने के लिए की विकल्पों को -algorithm EC -pkeyopt ec_paramgen_curve:P-256 से बदल दें। किसी भी तरीके में, CSR को SHA-256 से साइन किया जाना चाहिए, जो ऊपर दिए गए कमांड पहले से ही करते हैं।

मेरा OpenSSL वर्शन -addext को सपोर्ट नहीं करता। मैं क्या करूं?

-addext फ्लैग को OpenSSL 1.1.1 में जोड़ा गया था। यदि आप किसी पुराने बिल्ड पर हैं (उदाहरण के लिए, RHEL 7 पर OpenSSL 1.0.2), तो विकल्प B में दिया गया कॉन्फिग-फाइल तरीका उपयोग करें, जो Subject Alternative Names को कमांड लाइन के बजाय san.cnf फाइल में परिभाषित करता है।

ऑर्डर करने से पहले मैं यह कैसे जांचूं कि मेरा CSR सही है?

सर्वर पर openssl req -noout -text -verify -in example.com.csr चलाएं। यह subject, पूरी SAN सूची, की का प्रकार और साइज़, और सिग्नेचर एल्गोरिथ्म प्रिंट करता है, और यह पुष्टि करता है कि CSR उसकी प्राइवेट की से मेल खाता है। CSR को ऑर्डर फॉर्म में पेस्ट करने से पहले इन फील्ड की जांच करें।

CSR का कौन सा हिस्सा मुझे ऑर्डर फॉर्म में पेस्ट करना चाहिए?

-----BEGIN CERTIFICATE REQUEST----- से लेकर -----END CERTIFICATE REQUEST----- तक, पूरा ब्लॉक पेस्ट करें, इसमें कोई भी अक्षर छोड़ा न जाए। दोनों मार्कर लाइनें हर तरफ पांच हाइफ़न का उपयोग करती हैं। प्राइवेट की को पेस्ट न करें।

क्या यह AlmaLinux, Rocky Linux, और CentOS पर एक जैसा काम करता है?

हां। AlmaLinux, Rocky Linux, और CentOS Stream संबंधित RHEL रिलीज़ के साथ बाइनरी-कम्पेटिबल हैं और वही OpenSSL शामिल करते हैं, इसलिए कमांड समान होते हैं। यदि आपको आवश्यकता हो तो हमारे पास CentOS पर CSR कैसे जनरेट करें पर एक समर्पित ट्यूटोरियल भी है।

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

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

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

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