Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रणाली >> Linux

OpenSSL का उपयोग करके लिनक्स पर SSL सर्टिफिकेट कैसे जेनरेट करें

SSL/TLS सर्टिफिकेट जेनरेट करने की प्रक्रिया कई लिनक्स सिस्टम एडमिनिस्ट्रेटर के लिए एक सामान्य कार्य है। सौभाग्य से, भले ही आप एडमिनिस्ट्रेटर न हों, OpenSSL का उपयोग करके ऐसा करना आसान है, एक ओपन-सोर्स टूल जो कई लिनक्स वितरणों पर डिफ़ॉल्ट रूप से इंस्टॉल होता है। यहां हम बताते हैं कि OpenSSL क्या है, इसे कैसे इंस्टॉल करें, और सबसे महत्वपूर्ण बात, अपने सिस्टम पर SSL और TLS सर्टिफिकेट जेनरेट करने के लिए इसका उपयोग कैसे करें।

OpenSSL क्या है?

OpenSSL नेटवर्क ट्रैफ़िक के एन्क्रिप्शन के लिए ओपन-सोर्स SSL और TLS कार्यान्वयन प्रदान करने के लिए OpenSSL प्रोजेक्ट द्वारा विकसित एक लाइब्रेरी है। यह विभिन्न यूनिक्स-आधारित वितरणों के लिए आसानी से उपलब्ध है और इसका उपयोग सर्टिफिकेट, RSA प्राइवेट की जेनरेट करने और सामान्य क्रिप्टोग्राफी-संबंधी कार्यों को करने के लिए किया जा सकता है।

सेल्फ-साइन SSL सर्टिफिकेट की सीमा

जब आप OpenSSL का उपयोग करके SSL सर्टिफिकेट जेनरेट करते हैं, तो इसे "सेल्फ-साइन" माना जाता है। इसका मतलब है कि SSL सर्टिफिकेट अपनी प्राइवेट की के साथ साइन किया गया है न कि सर्टिफिकेट अथॉरिटी (CA) से।

इसलिए, SSL सर्टिफिकेट को "विश्वसनीय" नहीं माना जा सकता और इसका उपयोग किसी भी सार्वजनिक-सामना करने वाली साइट के लिए नहीं किया जाना चाहिए। यदि उपयोग किया जाता है, तो उपयोगकर्ताओं को उनके ब्राउज़र से सर्टिफिकेट के बारे में चेतावनी दिखाई देगी।

एक सेल्फ-साइन सर्टिफिकेट स्थानीय विकास या बैकग्राउंड में चलने वाले किसी भी ऐप के लिए उपयोगी है जो इंटरनेट का सामना नहीं करते हैं।

वैकल्पिक रूप से, आप Let's Encrypt का उपयोग कर सकते हैं या Comodo CA जैसे विश्वसनीय प्राधिकरण द्वारा सत्यापित सर्टिफिकेट प्राप्त कर सकते हैं।

इंस्टॉलेशन

अधिकांश लिनक्स वितरणों में डिफ़ॉल्ट रूप से OpenSSL का एक संस्करण अंतर्निहित होता है। यदि नहीं, तो आप इसे आसानी से इंस्टॉल कर सकते हैं।

आप इसे apt कमांड का उपयोग करके उबंटू और डेबियन पर इंस्टॉल कर सकते हैं:

sudo apt install openssl

सेंटओएस (या इसके विकल्प) पर, आप इसे yum कमांड का उपयोग करके इंस्टॉल कर सकते हैं:

sudo yum install openssl

आप इसे इसकी वेबसाइट से ".tar.gz" फ़ाइल के रूप में आसानी से डाउनलोड भी कर सकते हैं।

बुनियादी उपयोग

अब जब आपके पास OpenSSL इंस्टॉल है, तो हम प्रोग्राम द्वारा प्रदान किए जाने वाले कुछ बुनियादी फ़ंक्शन देख सकते हैं।

आप अपने OpenSSL इंस्टॉलेशन के बारे में संस्करण और अन्य प्रासंगिक जानकारी देखकर शुरू कर सकते हैं:

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 = test@test.com
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 फ्लैग का उपयोग उत्पन्न होने वाली की के नाम को निर्दिष्ट करने के लिए किया जाता है। RSA की के लिए डिफ़ॉल्ट 2048 बिट्स का की आकार भी निर्दिष्ट किया गया है।

आपको एक सर्टिफिकेट साइनिंग रिक्वेस्ट (CSR) भी जेनरेट करनी होगी:

openssl req -new -key example.key -out example.csr -config example.conf

इस मामले में, -key फ्लैग का उपयोग RSA की को निर्दिष्ट करने के लिए किया जाता है, -out फ्लैग CSR फ़ाइल का नाम निर्दिष्ट करता है और -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 जेनरेट करते समय, आपको अपने संगठन के बारे में सवालों के जवाब देने के लिए प्रेरित किया जाएगा।

अंत में, हम सर्टिफिकेट itself जेनरेट कर सकते हैं:

openssl x509 -req -days 30 -in example.csr -signkey example.key -out example.crt

की और सर्टिफिकेट का सत्यापन

की और सर्टिफिकेट को OpenSSL का उपयोग करके -check फ्लैग के साथ आसानी से जांचा और सत्यापित किया जा सकता है:

openssl rsa -check -in example.key

आप सर्टिफिकेट साइनिंग रिक्वेस्ट की जांच कर सकते हैं:

openssl req -text -noout -in example.csr

और सर्टिफिकेट भी:

openssl x509 -text -noout -in example.crt

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

1. क्या मुझे अभी भी हार्टब्लीड के बारे में चिंता करने की ज़रूरत है?

हार्टब्लीड (CVE-2014-0160) 2014 में OpenSSL में पाई गई एक पुरानी भेद्यता है। TLS-सर्वर और क्लाइंट दोनों OpenSSL चल रहे थे प्रभावित थे। इसकी खोज के कुछ दिनों बाद एक पैच जल्दी जारी किया गया था, और यह भेद्यता 2022 में चिंता की बात नहीं है जब तक आप OpenSSL का एक आधुनिक और अप-टू-डेट संस्करण चला रहे हैं।

यदि आप डेबियन और उबंटू-आधारित सिस्टम पर OpenSSL का उपयोग कर रहे हैं, तो आप निम्न कमांड चलाकर इसे हमेशा अपडेट कर सकते हैं:

sudo apt update && sudo apt upgrade openssl

2. SSL सर्टिफिकेट समाप्त होने से पहले कितने समय तक चलते हैं?

यह आपके द्वारा सर्टिफिकेट जेनरेट करते समय चुने गए मान पर निर्भर करता है। इसे सर्टिफिकेट जेनरेट करते समय -days फ्लैग का उपयोग करके निर्दिष्ट किया जा सकता है।

  1. Linux में Virtual Machine Manager का उपयोग शुरू कैसे करें Linux में Virtual Machine Manager का उपयोग शुरू कैसे करें

    Virtual Machine Manager Linux डेस्कटॉप के लिए उपलब्ध सर्वोत्तम हाइपरवाइजर्स में से एक है। यह QEMU/KVM वर्चुअलाइजेशन का उपयोग करके आपके Linux डेस्कटॉप पर वर्चुअलाइजेशन को अगले स्तर पर ले जाने वाला एक पूर्ण, अच्छा प्रदर्शन करने वाला सॉफ़्टवेयर है। Virtual Machine Manager कैसे इंस्टॉल करें Virtual Mac

  1. Kali Linux का उपयोग करके Android फोन को कैसे एक्सेस करें Kali Linux का उपयोग करके Android फोन को कैसे एक्सेस करें

    एक Android स्मार्टफोन अक्सर अधिकांश कमर्शियल IoT गैजेट्स का प्रवेश द्वार होता है। एक Nest Smoke अलार्म को एक प्रासंगिक Android ऐप के माध्यम से प्रबंधित किया जाता है। वैसे ही Nest Thermostat तापमान को नियंत्रित करने के लिए। स्मार्ट लॉक, डोरबेल कैम - लगभग सभी स्मार्ट डिवाइस को Alexa या अन्य मास्टर ऐप्

  1. लिनक्स में GPG कीज़ कैसे जनरेट करें लिनक्स में GPG कीज़ कैसे जनरेट करें

    क्या आपके पास ऐसी फाइलें या मैसेज हैं जिन्हें आप छिपाकर रखना चाहते हैं? उन्हें सुरक्षित रखने के लिए, आपको GPG एन्क्रिप्शन कीज़ का उपयोग करना चाहिए। यदि आप लिनक्स चला रहे हैं, तो GnuPG इंस्टॉल होने तक GPG का उपयोग करके अपनी फाइलों को एन्क्रिप्ट करना आसान है। यहां बताया गया है कि आप लिनक्स में GPG कीज