स्व-हस्ताक्षरित प्रमाणपत्र जनरेटर
किसी आंतरिक सेवा के लिए एक प्रमाणपत्र और उसकी निजी कुंजी, बिना कोई openssl मंत्र याद किए: सामान्य नाम दर्ज करें, हर वह नाम और IP सूचीबद्ध करें जिन्हें प्रमाणपत्र को कवर करना चाहिए, वैधता और कुंजी आकार चुनें, और दोनों PEM फ़ाइलें डाउनलोड करें। कुंजियाँ आपके ब्राउज़र में स्थानीय रूप से बनाई जाती हैं और कभी अपलोड नहीं होतीं — यह पेज कोई नेटवर्क अनुरोध बिल्कुल नहीं करता, और कुंजी केवल आपके टैब में मौजूद रहती है जब तक आप उसे सहेज नहीं लेते।
बड़ी कुंजियाँ बनाने में अधिक समय लगता है: 4096 बिट एक साधारण मशीन पर कुछ समय ले सकता है। काम आपकी मशीन पर, इसी टैब में होता है — इसे खुला छोड़ें और इसे पूरा होने दें।
स्व-हस्ताक्षरित: विषय और जारीकर्ता एक ही हैं, इसलिए इस प्रमाणपत्र के पीछे कोई सार्वजनिक प्राधिकरण खड़ा नहीं है। जब तक इसे उन मशीनों के ट्रस्ट स्टोर में नहीं जोड़ा जाता जो इसका उपयोग करती हैं, ब्राउज़र चेतावनी देते रहेंगे।
- कवर किए गए नाम (SAN)
- इससे वैध
- तक वैध
- SHA-256 फ़िंगरप्रिंट
प्रमाणपत्र (PEM)
निजी कुंजी (PEM) — इसे गुप्त रखें
दोनों फ़ाइलों को सर्वर पर स्थापित करें (प्रमाणपत्र और कुंजी एक जोड़ी के रूप में), कुंजी फ़ाइल की अनुमतियों को सेवा खाते तक सीमित रखें, और समाप्ति तिथि को कहीं ऐसी जगह नोट करें जहाँ आप उसे देखेंगे — एक आंतरिक प्रमाणपत्र का चुपचाप समाप्त हो जाना एक क्लासिक स्व-प्रेरित आउटेज है। प्रमाणपत्र पार्सर बनाए गए प्रमाणपत्र को वापस पढ़ता है यदि आप यह दोबारा जाँचना चाहते हैं कि आपने क्या तैनात किया, और प्रमाणपत्र और कुंजी मैचर साबित करता है कि डाउनलोड की गई जोड़ी एक-दूसरे की है — वह फ़ाइलों को उनकी साझा सार्वजनिक कुंजी के आधार पर समूहित करता है, ताकि किसी पुरानी जोड़ी से बची हुई कुंजी तैनाती में बिना ध्यान दिए घुस न सके।
स्व-हस्ताक्षरित प्रमाणपत्र किस काम का होता है
स्व-हस्ताक्षरित प्रमाणपत्र वह प्रमाणपत्र होता है जिसका जारीकर्ता और विषय एक ही होते हैं: वह स्वयं की गारंटी देता है। यह एक खामी जैसा लगता है, और सार्वजनिक वेब के लिए यह है भी — किसी आगंतुक के ब्राउज़र के पास किसी अजनबी की बात पर विश्वास करने का कोई कारण नहीं है। लेकिन TLS का एक बड़ा हिस्सा कभी जनता का सामना नहीं करता: आंतरिक डैशबोर्ड, प्रयोगशाला और स्टेजिंग वातावरण, होम-लैब सेवाएँ, नेटवर्क उपकरणों के व्यवस्थापक इंटरफ़ेस, और एक ही संगठन के भीतर सेवा-दर-सेवा की बातचीत। उनके लिए, दर्शक वे मशीनें हैं जिन्हें आप नियंत्रित करते हैं, और विश्वास के प्रश्न का एक अलग उत्तर है: आप प्रमाणपत्र (या अपने छोटे CA) को उन ट्रस्ट स्टोरों में स्थापित करते हैं जिन्हें आप प्रबंधित करते हैं, एक बार, जानबूझकर। बदले में आपको अपनी ही दीवारों के भीतर एन्क्रिप्शन और पहचान मिलती है, बिना किसी सार्वजनिक CA को कभी आपके आंतरिक होस्टनामों के बारे में पता चले — वे नाम जो स्वयं आपकी बुनियादी संरचना का एक नक्शा हैं।
बनाने की रस्म पहले एक openssl कमांड हुआ करती थी जिसे कोई याद नहीं रख सकता था और हर कोई कॉपी-पेस्ट करता था, जिसमें SAN एक कॉन्फ़िगरेशन फ़ाइल के ज़रिए जोड़े जाते थे क्योंकि पुराने संस्करणों में उनके लिए फ़्लैग मौजूद ही नहीं था। यह पेज इसलिए मौजूद है ताकि प्रमाणपत्र का आकार इसके बजाय दिखाई दे: नाम एक ऐसी सूची हैं जिसे आप पढ़ सकते हैं, वैधता दिनों की एक ऐसी संख्या है जिसे आप यह जानते हुए चुनते हैं कि वह समाप्त होगी, और कुंजी आकार एक निर्णय है, कोई ऐसा डिफ़ॉल्ट नहीं जिस पर आपने कभी ध्यान ही न दिया हो। यह जानबूझकर जो नहीं करता, वह है CA होने का दिखावा: कोई श्रृंखला नहीं, कोई मध्यवर्ती नहीं, रद्द करने के लिए कुछ नहीं। एक सेवा, एक प्रमाणपत्र, एक समाप्ति तिथि जिस पर नज़र रखनी है।
क्लाइंटों से इसे स्वीकार करवाना
प्रमाणपत्र बनाना आसान आधा हिस्सा है; विश्वास ही तैनाती है। आपकी अपनी मुट्ठी भर मशीनों पर, प्रमाणपत्र को ऑपरेटिंग सिस्टम (या ब्राउज़र) के ट्रस्ट स्टोर में जोड़ने से चेतावनियाँ हमेशा के लिए समाप्त हो जाती हैं, और curl और git जैसे उपकरण सत्यापन को अक्षम करने की खतरनाक आदत के बजाय प्रति-कमांड --cacert सूचक स्वीकार करते हैं — -k फ़्लैग हर किसी को ठीक उसी चेतावनी को अनदेखा करने का प्रशिक्षण देता है जो किसी वास्तविक हमले को पकड़ती। जब दर्शक मुट्ठी भर मशीनों से आगे बढ़ जाएँ, तो एकल स्व-हस्ताक्षरित प्रमाणपत्रों से एक छोटे निजी CA की ओर बढ़ें: उससे सेवा प्रमाणपत्रों पर हस्ताक्षर करें, केवल CA प्रमाणपत्र वितरित करें, और रोटेशन हर क्लाइंट का दौरा नहीं रह जाता। और जब कोई सेवा आखिरकार जनता का सामना करने लगे, तो प्रमाणपत्र को सार्वजनिक रूप से विश्वसनीय प्रमाणपत्र से बदल दें — SSL चेकर सत्यापित करता है कि कोई सर्वर लाइव होने के बाद वास्तव में क्या प्रस्तुत करता है, और यही वह क्षण है जब स्व-हस्ताक्षरित एक विकल्प नहीं रह जाता।
संबंधित उपकरण: SSL प्रमाणपत्र पार्सर से किसी भी प्रमाणपत्र को वापस पढ़ें, या SSL चेकर से जाँचें कि कोई लाइव सर्वर क्या प्रस्तुत करता है।
आगे पढ़ें: एक विश्वसनीयता दिनचर्या — आंतरिक प्रमाणपत्र और उनकी समाप्ति तिथियाँ रोटेशन और बैकअप के साथ एक ही योजना पृष्ठ पर क्यों होनी चाहिए।
प्रमाणपत्र निर्माण node-forge का उपयोग करता है, BSD-3-Clause लाइसेंस के तहत उपयोग किया गया, केवल तभी लोड होता है जब आप बनाएँ दबाते हैं। इस उपकरण का कोई भी भाग कोई नेटवर्क अनुरोध नहीं करता।
अक्सर पूछे जाने वाले प्रश्न
मुझे स्व-हस्ताक्षरित प्रमाणपत्र कहाँ उपयोग करना चाहिए?
उन चीज़ों पर जिनसे केवल आप और आपके अपने सिस्टम बात करते हैं: आंतरिक डैशबोर्ड, प्रयोगशाला और स्टेजिंग वातावरण, होम-लैब सेवाएँ, डिवाइस व्यवस्थापक पेज, और उस प्लेसहोल्डर के रूप में जो किसी सर्वर को वास्तविक प्रमाणपत्र जारी होने से पहले शुरू होने देता है। नियम पहुँच है: यदि किसी अजनबी का ब्राउज़र इसे कभी देखेगा, तो इसके बजाय इसे एक सार्वजनिक रूप से विश्वसनीय प्रमाणपत्र की आवश्यकता है — वे Let’s Encrypt से मुफ़्त हैं।
ब्राउज़र स्व-हस्ताक्षरित प्रमाणपत्रों के बारे में चेतावनी क्यों देते हैं?
क्योंकि “स्व-हस्ताक्षरित” का अर्थ है कि प्रमाणपत्र की गारंटी देने वाला एकमात्र स्वयं वही है। एन्क्रिप्शन काम करता है — कनेक्शन निजी है — लेकिन कुछ भी यह साबित नहीं करता कि सर्वर वही है जो वह होने का दावा करता है, जो TLS का वह आधा हिस्सा है जो एक प्रमाणपत्र प्राधिकरण आम तौर पर प्रदान करता है। इसलिए ब्राउज़र तब तक चेतावनी देते हैं जब तक प्रमाणपत्र (या एक CA जिसे आप नियंत्रित करते हैं) उन मशीनों के ट्रस्ट स्टोर में नहीं जोड़ दिया जाता जो इसका उपयोग करती हैं।
सामान्य नाम SAN सूची में भी क्यों दिखाई देता है?
आधुनिक ब्राउज़र सामान्य नाम फ़ील्ड को पूरी तरह अनदेखा करते हैं और इसके बजाय विषय वैकल्पिक नाम सूची की जाँच करते हैं। एक प्रमाणपत्र जिसका मुख्य नाम उसकी अपनी SAN सूची में नहीं है, ठीक उसी नाम पर विफल हो जाता है जिसके लिए वह बनाया गया था — सबसे आम स्व-हस्ताक्षरित गलती — इसलिए यह पेज सामान्य नाम को हमेशा SAN में जोड़ता है।
क्या 2048-बिट RSA पर्याप्त है, या मुझे 4096 चुनना चाहिए?
2048-बिट RSA वर्तमान आधार रेखा है और आंतरिक सेवाओं के लिए ठीक है; यही वह है जिसका उपयोग अधिकांश सार्वजनिक प्रमाणपत्र अभी भी करते हैं। 4096 बिट धीमी निर्माण गति और थोड़े धीमे हैंडशेक की लागत पर भविष्य के क्रिप्टोविश्लेषण के विरुद्ध मार्जिन खरीदता है। यह एक लंबे समय तक चलने वाले आंतरिक CA या ऐसी सेवा के लिए समझदारी है जिसे आप आसानी से दोबारा जारी नहीं कर सकते। निर्माण किसी भी स्थिति में आपकी अपनी मशीन पर होता है — 4096 बिट कुछ समय ले सकता है, और टैब काम कर रहा है, अटका नहीं है।
क्या वेब पेज में निजी कुंजी बनाना सुरक्षित है?
इस पेज पर, हाँ, इसके बनाए जाने के तरीके के कारण: कुंजी जोड़ी node-forge लाइब्रेरी के साथ आपके ब्राउज़र में स्थानीय रूप से बनाई जाती है, पेज कोई नेटवर्क अनुरोध बिल्कुल नहीं करता, और आप जो कुछ भी बनाते हैं वह अपलोड, लॉग या संग्रहीत नहीं होता। फिर भी सामान्य आदत बनाए रखने योग्य है: केवल उन पेजों (और मशीनों) पर कुंजियाँ बनाएँ जिन पर आप भरोसा करते हैं, और निजी कुंजी फ़ाइल को उस क्षण से एक रहस्य की तरह मानें जब वह अस्तित्व में आती है।