कई Linux सिस्टम व्यवस्थापकों के लिए SSL/TLS प्रमाणपत्र जनरेट करने की प्रक्रिया एक सामान्य कार्य है। सौभाग्य से, भले ही आप एक व्यवस्थापक नहीं हैं, ओपनएसएसएल का उपयोग करके ऐसा करना आसान है, एक ओपन-सोर्स टूल जो कि कई लिनक्स वितरणों पर डिफ़ॉल्ट रूप से स्थापित है। यहां हम बताते हैं कि ओपनएसएसएल क्या है, इसे कैसे स्थापित किया जाए, और सबसे महत्वपूर्ण बात यह है कि इसका उपयोग अपने सिस्टम पर एसएसएल और टीएलएस प्रमाणपत्र बनाने के लिए कैसे करें।
ओपनएसएसएल क्या है?
ओपनएसएसएल ओपनएसएसएल प्रोजेक्ट द्वारा नेटवर्क ट्रैफिक के एन्क्रिप्शन के लिए ओपन-सोर्स एसएसएल और टीएलएस कार्यान्वयन प्रदान करने के लिए विकसित एक पुस्तकालय है। यह विभिन्न प्रकार के यूनिक्स-आधारित वितरणों के लिए आसानी से उपलब्ध है और इसका उपयोग प्रमाणपत्र, आरएसए निजी कुंजी उत्पन्न करने और सामान्य क्रिप्टोग्राफी से संबंधित कार्यों को करने के लिए किया जा सकता है।
स्व-हस्ताक्षरित SSL प्रमाणपत्र की सीमा
जब आप SSL प्रमाणपत्र बनाने के लिए OpenSSL का उपयोग करते हैं, तो इसे "स्व-हस्ताक्षरित" माना जाता है। इसका मतलब है कि एसएसएल प्रमाणपत्र पर अपनी निजी कुंजी से हस्ताक्षर किए गए हैं, न कि किसी प्रमाणपत्र प्राधिकरण (सीए) से।
जैसे, एसएसएल प्रमाणपत्र "विश्वसनीय" नहीं हो सकता है और किसी भी सार्वजनिक सामना करने वाली साइट के लिए इसका उपयोग नहीं किया जाना चाहिए। यदि उपयोग किया जाता है, तो उपयोगकर्ताओं को उनके ब्राउज़र से प्रमाणपत्र के बारे में चेतावनियां दिखाई देंगी।
एक स्व-हस्ताक्षरित प्रमाणपत्र स्थानीय विकास या पृष्ठभूमि में चल रहे किसी भी ऐप के लिए उपयोगी है जो इंटरनेट का सामना नहीं करता है।
वैकल्पिक रूप से, आप LetsEncrypt का उपयोग कर सकते हैं या कोमोडो सीए जैसे किसी विश्वसनीय प्राधिकारी द्वारा सत्यापित प्रमाणपत्र प्राप्त कर सकते हैं।
इंस्टॉलेशन
अधिकांश लिनक्स वितरण में पहले से ही डिफ़ॉल्ट रूप से निर्मित ओपनएसएसएल का एक संस्करण होता है। यदि नहीं, तो आप इसे आसानी से स्थापित कर सकते हैं।
आप इसे उबंटू और डेबियन पर apt
. का उपयोग करके स्थापित कर सकते हैं आदेश:
sudo apt install openssl
CentOS (या इसके विकल्प) पर, आप इसे yum
. का उपयोग करके स्थापित कर सकते हैं आदेश:
sudo yum install openssl
आप इसे इसकी वेबसाइट से ".tar.gz" फ़ाइल के रूप में भी आसानी से डाउनलोड कर सकते हैं।
बुनियादी उपयोग
अब जब आपने ओपनएसएसएल स्थापित कर लिया है, तो हम प्रोग्राम द्वारा प्रदान किए जाने वाले कुछ बुनियादी कार्यों पर एक नज़र डाल सकते हैं।
आप अपनी ओपनएसएसएल स्थापना के बारे में संस्करण और अन्य प्रासंगिक जानकारी देखकर शुरू कर सकते हैं:
openssl version -a
आप दिए गए मैनुअल को देख सकते हैं:
openssl help
कॉन्फ़िगरेशन फ़ाइल का उपयोग करके प्रमाणपत्र बनाना
OpenSSL का उपयोग करके प्रमाणपत्र बनाना कई तरह से संभव है। उनमें से एक कॉन्फ़िगरेशन फ़ाइल का उपयोग करना है जो संगठन के बारे में विवरण निर्दिष्ट करेगा।
शुरू करने के लिए, आप "config.conf" नामक एक कॉन्फ़िगरेशन फ़ाइल बना सकते हैं और नैनो का उपयोग करके इसे संपादित कर सकते हैं:
sudo nano example.conf
यहाँ कॉन्फ़िगरेशन फ़ाइल की सामग्री का एक उदाहरण है:
[req] default_bits = 2048 prompt = no default_md = sha256 req_extensions = req_ext x509_extensions= v3_ca distinguished_name = dn [dn] C = US ST = California L = Los Angeles O = Org OU = Sales emailAddress = [email protected] CN = www.org.test.com [ v3_ca ] subjectKeyIdentifier=hash authorityKeyIdentifier=keyid:always,issuer:always basicConstraints = CA:true [req_ext] subjectAltName = @alt_names [alt_names] DNS.1 = test.example.com
आप इसे फ़ाइल में कॉपी और पेस्ट कर सकते हैं और अपने संगठन की जानकारी को प्रतिबिंबित करने के लिए आवश्यक परिवर्तन कर सकते हैं।
इसके बाद, आपको एक RSA निजी कुंजी जनरेट करनी होगी, जिसका उपयोग तब रूट प्रमाणपत्र बनाने के लिए किया जाएगा -:
openssl genrsa -out example.key 2048
-out
इस मामले में ध्वज का उपयोग उस कुंजी का नाम निर्दिष्ट करने के लिए किया जाता है जो उत्पन्न होगी। 2048 बिट्स का एक कुंजी आकार भी निर्दिष्ट किया गया है, जो आरएसए कुंजी के लिए डिफ़ॉल्ट है।
आपको सर्टिफिकेट साइनिंग रिक्वेस्ट (सीएसआर) भी जेनरेट करनी होगी:
openssl req -new -key example.key -out example.csr -config example.conf
इस मामले में, -key
ध्वज का उपयोग RSA कुंजी को निर्दिष्ट करने के लिए किया जाता है, -out
ध्वज सीएसआर फ़ाइल का नाम और -config
. निर्दिष्ट करता है फ्लैग का प्रयोग कॉन्फिग फाइल के नाम को निर्दिष्ट करने के लिए किया जाता है।
इसके बाद, आप एक रूट सर्टिफिकेट जेनरेट कर सकते हैं, जिसका इस्तेमाल हमारे फाइनल सर्टिफिकेट को जेनरेट करने के लिए किया जाता है:
openssl req -x509 -sha256 -nodes -new -key example.key -out example.crt -config example.conf
इस रूट प्रमाणपत्र को बनाने की प्रक्रिया में, -sha256
ध्वज का उपयोग SHA256 को संदेश डाइजेस्ट के रूप में निर्दिष्ट करने के लिए किया जाता है।
अब, अंतिम चरण के लिए, हम अपना प्रमाणपत्र बनाने के लिए अंत में निम्नलिखित टाइप कर सकते हैं:
openssl x509 -sha256 -CAcreateserial -req -days 30 -in example.csr -extfile example.conf -CA example.crt -CAkey example.key -out final.crt
-CA
ध्वज रूट प्रमाणपत्र निर्दिष्ट करता है, -CAkey
ध्वज निजी कुंजी निर्दिष्ट करता है और -extfile
कॉन्फ़िगरेशन फ़ाइल का नाम निर्दिष्ट करता है। “Final.crt” फ़ाइल वह SSL प्रमाणपत्र होगी जो आप चाहते हैं।
कॉन्फ़िगरेशन फ़ाइल के बिना प्रमाणपत्र बनाना
वैकल्पिक रूप से, आप बिना कॉन्फ़िगरेशन फ़ाइल के OpenSSL का उपयोग करके प्रमाणपत्र भी बना सकते हैं।
आप एक RSA निजी कुंजी जनरेट करके प्रारंभ कर सकते हैं:
openssl genrsa -out example.key 2048
इसके बाद, आपको एक CSR जनरेट करना होगा:
openssl req -new -key example.key -out example.csr
CSR जनरेट करते समय, आपको अपने संगठन के बारे में सवालों के जवाब देने के लिए कहा जाएगा।
अंत में, हम स्वयं प्रमाणपत्र तैयार कर सकते हैं:
openssl x509 -req -days 30 -in example.csr -signkey example.key -out example.crt
कुंजी और प्रमाणपत्रों का सत्यापन
ओपनएसएसएल का उपयोग करके कुंजी और प्रमाणपत्र आसानी से चेक और सत्यापित किए जाते हैं, -check
. के साथ झंडा:
openssl rsa -check -in example.key
आप प्रमाणपत्र हस्ताक्षर अनुरोधों की जांच कर सकते हैं:
openssl req -text -noout -in example.csr
और प्रमाणपत्र भी:
openssl x509 -text -noout -in example.crt
अक्सर पूछे जाने वाले प्रश्न
1. क्या मुझे अब भी हार्टब्लिड के बारे में चिंता करने की ज़रूरत है?
Heartbleed (CVE-2014-0160) 2014 में OpenSSL में पाई गई एक पुरानी भेद्यता है। TLS-सर्वर और OpenSSL चलाने वाले क्लाइंट दोनों प्रभावित हुए थे। इसकी खोज के कुछ दिनों बाद एक पैच जल्दी से जारी किया गया था, और जब तक आप ओपनएसएसएल का एक आधुनिक और अप-टू-डेट संस्करण चला रहे हैं, तब तक यह भेद्यता 2022 में चिंता का विषय नहीं है।
यदि आप डेबियन और उबंटू-आधारित सिस्टम पर ओपनएसएसएल का उपयोग कर रहे हैं, तो आप निम्न कमांड चलाकर इसे हमेशा अपडेट कर सकते हैं:
sudo apt update && sudo apt upgrade openssl
2. SSL प्रमाणपत्र समाप्त होने से पहले कितने समय तक चलते हैं?
यह प्रमाण पत्र बनाते समय आपके द्वारा चुने गए मूल्य पर निर्भर करता है। इसे -days
. का उपयोग करके निर्दिष्ट किया जा सकता है प्रमाणपत्र बनाते समय ध्वजांकित करें।