bg-tutorials

OpenSSL से Code Signing Certificate के लिए CSR कैसे जनरेट करें

यह गाइड बताती है कि जब आप OpenSSL के साथ काम करते हैं तो कोड साइनिंग सर्टिफिकेट के लिए सर्टिफिकेट साइनिंग रिक्वेस्ट (CSR) कैसे जेनरेट किया जाता है, और यह भी बताती है कि यह तरीका कब लागू नहीं होता, जो उतना ही महत्वपूर्ण है। 1 जून, 2023 से, कोड साइनिंग कीज़ के नियम बदल गए हैं, इसलिए पुराना केवल-सॉफ्टवेयर OpenSSL वर्कफ़्लो सार्वजनिक रूप से विश्वसनीय कोड साइनिंग सर्टिफिकेट के लिए सर्टिफिकेट अथॉरिटीज़ द्वारा स्वीकार नहीं किया जाता। पहले नीचे दी गई आवश्यकता को पढ़ें, फिर वह रास्ता अपनाएँ जो आपकी कीज़ के संग्रहण के तरीके से मेल खाता हो।

महत्वपूर्ण: कोड साइनिंग कीज़ को हार्डवेयर में ही रहना चाहिए

CA/Browser Forum Code Signing Baseline Requirements के अंतर्गत, जो 1 जून, 2023 से प्रभावी है, हर सार्वजनिक रूप से विश्वसनीय कोड साइनिंग सर्टिफिकेट के लिए, चाहे वह स्टैंडर्ड (OV) हो या Extended Validation (EV), प्राइवेट की को एक हार्डवेयर क्रिप्टो मॉड्यूल में जेनरेट और संग्रहित किया जाना चाहिए जो FIPS 140-2 Level 2, Common Criteria EAL4+, या किसी समान मानक को पूरा करता हो। की को नॉन-एक्सपोर्टेबल होना चाहिए। EV कोड साइनिंग के लिए हमेशा हार्डवेयर आवश्यक था; इस नियम ने वही सुरक्षा स्टैंडर्ड सर्टिफिकेट्स तक भी बढ़ा दी।

व्यावहारिक परिणाम यह है: लैपटॉप या सर्वर पर केवल सॉफ्टवेयर में सादे OpenSSL के साथ जेनरेट की गई प्राइवेट की और CSR अब सार्वजनिक रूप से विश्वसनीय कोड साइनिंग सर्टिफिकेट जारी करने के लिए स्वीकार नहीं की जाती। सर्टिफिकेट अथॉरिटीज़ ने इन प्रोडक्ट्स के लिए ब्राउज़र-आधारित की जेनरेशन और सॉफ्टवेयर CSR का समर्थन बंद कर दिया है। अब आपकी की इन जगहों में से किसी एक में रहती है:

  • आपको भेजा गया एक हार्डवेयर टोकन (उदाहरण के लिए एक YubiKey या SafeNet/Thales eToken)। टोकन + शिपमेंट डिलीवरी मेथड के साथ, सर्टिफिकेट अथॉरिटी डिवाइस पर की जेनरेट करती है और CSR को हैंडल करती है, इसलिए आपको OpenSSL से इसे बनाने की जरूरत नहीं होती।
  • एक हार्डवेयर सिक्योरिटी मॉड्यूल (HSM) जो आपके नियंत्रण में हो, चाहे वह ऑन-प्रिमाइसेस हो या क्लाउड-आधारित। यहाँ आप HSM के भीतर की जेनरेट करते हैं और एक CSR के साथ-साथ एक की एटेस्टेशन तैयार करते हैं जो यह साबित करता है कि की हार्डवेयर में बनाई गई थी।
  • एक क्लाउड सिग्निंग सेवा जो आपकी ओर से अनुरूप HSM में की को सुरक्षित रखती है।

यह चुनें कि आप सर्टिफिकेट कैसे प्राप्त करना और संग्रहित करना चाहते हैं, उसके अनुसार अपना रास्ता चुनें। एक ओवरव्यू के लिए, कोड साइनिंग डिलीवरी मेथड्स गाइड देखें। हार्डवेयर-आधारित CSR और एटेस्टेशन स्टेप्स के लिए, अपने डिवाइस से मेल खाने वाली गाइड फॉलो करें:

यदि आप कोई अलग HSM उपयोग करते हैं, तो उस वेंडर के टूलिंग के साथ CSR जेनरेट करें ताकि की हार्डवेयर में ही रहे। बाद में दिखाया गया OpenSSL req कमांड उन वर्कफ़्लो में भी भूमिका निभाता है जब OpenSSL किसी प्रोवाइडर या इंजन के माध्यम से HSM को नियंत्रित करता है, लेकिन इसे उस की का संदर्भ देना चाहिए जो पहले से ही मॉड्यूल में रहती है, कभी भी सार्वजनिक रूप से विश्वसनीय सर्टिफिकेट के लिए सादी सॉफ्टवेयर की फाइल का नहीं।

सॉफ्टवेयर OpenSSL मेथड कब लागू होता है

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

  • प्राइवेट/एंटरप्राइज़ CA के साथ इंटरनल या टेस्ट साइनिंग, जहाँ की स्टोरेज को सार्वजनिक CA/Browser Forum नियम नहीं, बल्कि आपकी अपनी पॉलिसी नियंत्रित करती है।
  • टोकन या HSM की ओर बढ़ने से पहले OpenSSL कमांड संरचना सीखना।
  • अपने हार्डवेयर की के विरुद्ध असली CSR जेनरेट करते समय उपयोग किए जाने वाले सब्जेक्ट विवरण और कमांड सिंटैक्स तैयार करना।

OV या EV कोड साइनिंग सर्टिफिकेट के लिए किसी सार्वजनिक सर्टिफिकेट अथॉरिटी को सॉफ्टवेयर-जेनरेटेड की और CSR कभी सबमिट न करें। इसे अस्वीकार कर दिया जाएगा। इस सीमा को स्पष्ट करने के बाद, यहाँ OpenSSL प्रक्रिया और इसमें शामिल कमांड दिए गए हैं।

1. OpenSSL डाउनलोड और इंस्टॉल करें

यदि OpenSSL आपके कंप्यूटर पर पहले से मौजूद नहीं है, तो अपने ऑपरेटिंग सिस्टम के लिए एक वर्तमान बिल्ड (OpenSSL 3.x या नया) डाउनलोड करें और इंस्टॉल करें। macOS और अधिकांश Linux डिस्ट्रिब्यूशन में OpenSSL पहले से मौजूद होता है; Windows पर आप आमतौर पर थर्ड-पार्टी बिल्ड इंस्टॉल करते हैं। इंस्टॉल और वर्शन की पुष्टि इससे करें:

openssl version

2. टर्मिनल खोलें और OpenSSL लोड करें

Windows पर, Windows key + R दबाएँ, cmd टाइप करें, और Enter दबाएँ। संरक्षित फ़ोल्डरों में फाइलें लिखने वाले कमांड के लिए, Command Prompt को एडमिनिस्ट्रेटर के रूप में चलाएँ: Command Prompt आइकन पर राइट-क्लिक करें और Run as administrator चुनें। आप टास्कबार सर्च में cmd टाइप करके भी वहाँ से Command Prompt खोल सकते हैं। macOS या Linux पर, अपना टर्मिनल एप्लिकेशन खोलें।

यदि Windows पर OpenSSL बाइनरी आपके सिस्टम पथ पर नहीं है, तो पहले उसके इंस्टॉल फ़ोल्डर में जाएँ, अपने बिल्ड से मेल खाने वाला पथ उपयोग करते हुए:

cd OpenSSL-Win32bin
cd "Program FilesOpenSSL-Win64bin"

3. प्राइवेट की और CSR जेनरेट करें

पहले प्राइवेट की जेनरेट करें। कोड साइनिंग सर्टिफिकेट के लिए एक मजबूत की आवश्यक होती है: RSA 3072-बिट (या बड़ी) का उपयोग करें, जो कोड साइनिंग के लिए सामान्य न्यूनतम है, या P-256 कर्व पर एक ECDSA की। RSA 3072-बिट की बनाने के लिए:

openssl genrsa -out code_signing_key.key 3072

फिर उस की से CSR जेनरेट करें। वर्तमान वर्शन में OpenSSL डिफ़ॉल्ट रूप से रिक्वेस्ट सिग्नेचर के लिए SHA-256 का उपयोग करता है:

openssl req -new -key code_signing_key.key -out code_signing_csr.txt

4. CSR फील्ड्स पूरे करें

OpenSSL उन विवरणों के लिए संकेत देता है जो सर्टिफिकेट धारक की पहचान करते हैं। सटीक, वर्तमान जानकारी दर्ज करें जो आपके कानूनी संगठन रिकॉर्ड से मेल खाती हो, क्योंकि CA इसकी पुष्टि करता है। उदाहरणों को अपने विवरणों से बदलें:

  • देश (C): वह दो-अक्षर वाला देश कोड जहाँ आपकी कंपनी रजिस्टर्ड है या जहाँ आप निवास करते हैं, उदाहरण के लिए US
  • राज्य या प्रांत (ST): पूरा राज्य या प्रांत का नाम, उदाहरण के लिए California
  • स्थान (L): वह शहर जहाँ आपकी कंपनी रजिस्टर्ड है, उदाहरण के लिए San Jose
  • संगठन का नाम (O): आपके संगठन का आधिकारिक, कानूनी नाम, या यदि सर्टिफिकेट एक व्यक्ति के लिए है तो आपका पूरा कानूनी नाम, उदाहरण के लिए GPI Holding LLC
  • संगठनात्मक इकाई (OU): सर्टिफिकेट मांगने वाला विभाग, उदाहरण के लिए IT। यह फील्ड वैकल्पिक है।
  • कॉमन नेम (CN): आपके संगठन का कानूनी नाम, या व्यक्तिगत सर्टिफिकेट के लिए आपका पूरा नाम। कोड साइनिंग के लिए, कॉमन नेम वह पहचान होती है जो प्रकाशक के रूप में दिखाई देती है।
  • ईमेल एड्रेस: एक वैध संपर्क ईमेल एड्रेस।

आप वैकल्पिक चैलेंज पासवर्ड और वैकल्पिक कंपनी नाम फील्ड्स को खाली छोड़ सकते हैं: उन प्रॉम्प्ट पर केवल Enter दबाएँ।

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

openssl req -new -newkey rsa:3072 -nodes -keyout code_signing_key.key -out code_signing_csr.txt -subj "/C=US/ST=California/L=San Jose/O=GPI Holding LLC/OU=IT/CN=GPI Holding LLC"

5. CSR की पुष्टि करें

कुछ भी सबमिट करने से पहले, पुष्टि करें कि CSR वैध है और इसके विवरण सही हैं। यह कमांड डीकोडेड सब्जेक्ट प्रिंट करता है और रिक्वेस्ट सिग्नेचर की जांच करता है:

openssl req -noout -text -verify -in code_signing_csr.txt

जांचें कि सब्जेक्ट लाइन में देश, संगठन, और कॉमन नेम ठीक वैसे ही सूचीबद्ध हैं जैसा आप चाहते हैं, कि पब्लिक की का साइज़ 3072 बिट्स या अधिक है (या एक ECDSA की), और कि सिग्नेचर एल्गोरिथम SHA-256 है। आपको एक verify OK संदेश भी दिखना चाहिए, जो पुष्टि करता है कि CSR को उसकी मैचिंग प्राइवेट की द्वारा साइन किया गया था।

6. प्राइवेट की और CSR को एक सुरक्षित डायरेक्टरी में ले जाएँ

प्राइवेट की और CSR को OpenSSL फ़ोल्डर से बाहर एक ऐसी डायरेक्टरी में ले जाएँ जिसे आप नियंत्रित करते हैं। प्राइवेट की को गुप्त रखें और इसे अपने संगठन के बाहर किसी के साथ कभी साझा न करें: जो कोई इसे रखता है वह आपके नाम पर सॉफ्टवेयर साइन कर सकता है। Windows पर, एक फ़ोल्डर बनाएँ और फाइलों को उसमें ले जाएँ:

md c:codesigningcertificates
move code_signing_key.key c:codesigningcertificates
move code_signing_csr.txt c:codesigningcertificates

7. अपने CA को CSR सबमिट करें

CSR फाइल को किसी भी प्लेन-टेक्स्ट एडिटर में खोलें, जैसे Notepad, और इसकी पूरी सामग्री को कॉपी करें, जिसमें —–BEGIN CERTIFICATE REQUEST—– और —–END CERTIFICATE REQUEST—– लाइनें शामिल हैं, और अपने सर्टिफिकेट ऑर्डर के दौरान एनरोलमेंट फॉर्म में पेस्ट करें। एक CSR ब्लॉक ऐसा दिखता है:

-----BEGIN CERTIFICATE REQUEST-----
MIICvDCCAaQCAQAw...
...base64 encoded request...
-----END CERTIFICATE REQUEST-----

इस गाइड के शीर्ष से नियम याद रखें: सार्वजनिक रूप से विश्वसनीय कोड साइनिंग सर्टिफिकेट के लिए, जो CSR आप सबमिट करते हैं उसे अनुरूप हार्डवेयर में जेनरेट और संग्रहित की गई की के अनुरूप होना चाहिए। यदि आपने ऊपर दिए स्टेप्स के साथ एक सॉफ्टवेयर की जेनरेट की है, तो इसका उपयोग केवल इंटरनल या टेस्ट साइनिंग के लिए करें। एक पब्लिक CA ऑर्डर के लिए, YubiKey या Luna HSM गाइड का उपयोग करके अपने टोकन या HSM से CSR जेनरेट करें, या टोकन + शिपमेंट डिलीवरी मेथड चुनने पर CA को की जेनरेट करने दें।

CSR निर्माण के अलावा सामान्य OpenSSL सिंटैक्स के लिए, OpenSSL commands संदर्भ एक उपयोगी साथी है। आप अधिक OpenSSL ट्यूटोरियल्स और कोड साइनिंग ट्यूटोरियल्स भी देख सकते हैं, या CSR जेनरेट करने के अन्य तरीके पढ़ सकते हैं।

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

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

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

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