स्व-हस्ताक्षरित क्लाइंट प्रमाणपत्र? VPN सर्वर फिर भी इसे अस्वीकार करता है
क्लाइंट प्रमाणपत्र को उस CA तक श्रृंखलित होना चाहिए जिस पर सर्वर भरोसा करता है, और स्व-हस्ताक्षरित कभी ऐसा नहीं करेगा। यहाँ बताया गया है कि CSR क्या कर सकता है और क्या माँगना चाहिए।
ऑपरेटर एक पता और उपयोगकर्ता नाम भेजता है, और क्लाइंट CA फ़ाइल, प्रमाणपत्र और कुंजी माँगता है। इन तीनों को स्थानीय रूप से बनाना अगला स्पष्ट कदम लगता है। इससे ऐसा प्रमाणपत्र बनता है जिस पर केवल आपकी अपनी मशीन विश्वास करती है। सर्वर का भरोसा ऐसे CA में निहित है जिसे आप नियंत्रित नहीं करते, इसलिए हैंडशेक शुरू होने से पहले ही समाप्त हो जाता है।
भरोसा सर्वर पर रहता है, आपकी प्रोफ़ाइल में नहीं
प्रमाणपत्र प्रमाणीकरण एक तुलना है। क्लाइंट प्रमाणपत्र प्रस्तुत करता है; गेटवे जाँचता है कि इसे उसके कॉन्फ़िगरेशन में किसी CA ने हस्ताक्षरित किया है या नहीं।
आपकी प्रोफ़ाइल उस CA फ़ाइल का नाम बताती है जिसे क्लाइंट को सर्वर सत्यापित करने के लिए उपयोग करना चाहिए। यह ऐसी CA का नाम नहीं बता सकती जिसे सर्वर को आपका सत्यापन करने के लिए उपयोग करना चाहिए। कॉन्फ़िगरेशन का वह आधा हिस्सा आपका नहीं है।
स्वयं बनाया प्रमाणपत्र तकनीकी रूप से उत्तम होने पर भी इस तुलना में विफल होता है। इसमें वैध हस्ताक्षर, विषय और तिथियाँ हैं, पर जारीकर्ता ऐसा CA है जिसके बारे में गेटवे ने कभी सुना नहीं। त्रुटि हैंडशेक के दौरान दिखाई देती है, सर्वर द्वारा पहले ही प्रमाणपत्र माँग लेने के बाद। क्लाइंट प्रोफ़ाइल में कुछ भी उत्तर नहीं बदल सकता।
स्व-हस्ताक्षरित प्रमाणपत्र इसका विकल्प क्यों नहीं बन सकता
स्व-हस्ताक्षरित प्रमाणपत्र अपनी ही कुंजी से हस्ताक्षरित होता है। हस्ताक्षर उसी फ़ाइल के विरुद्ध सत्यापित होता है, जो इसे आत्म-संगत और किसी दूसरे के गेटवे के लिए अक्षम बनाता है।
गेटवे यह नहीं पूछता कि प्रमाणपत्र आंतरिक रूप से संगत है या नहीं। वह पूछता है कि क्या किसी विश्वसनीय जारीकर्ता ने इस पर हस्ताक्षर किए।
इसीलिए त्रुटि संदेश भ्रमित करते हैं। क्लाइंट ऐसी सत्यापन विफलता की सूचना दे सकता है जो सर्वर की समस्या जैसी लगे, जबकि सर्वर अज्ञात जारीकर्ता दर्ज करता है। दोनों उसी असंगति को विपरीत सिरों से वर्णित करते हैं।
CSR मार्ग आपकी निजी कुंजी रखता है
आप अधिकांश काम अब भी स्थानीय रूप से कर सकते हैं। एक कुंजी युग्म बनाएँ, सार्वजनिक आधे हिस्से के चारों ओर प्रमाणपत्र हस्ताक्षर अनुरोध बनाएँ और वह अनुरोध ऑपरेटर को भेजें। केवल अनुरोध ही आपकी मशीन से बाहर जाता है। निजी आधा हिस्सा वहीं रहता है जहाँ आपने इसे बनाया था।
openssl req -new -newkey rsa:3072 -nodes -keyout client.key -out client.csr -subj "/CN=laptop-01"
ऑपरेटर अपने CA से अनुरोध पर हस्ताक्षर करता है और प्रमाणपत्र लौटाता है। आपकी निजी कुंजी कभी यात्रा नहीं की, और परिणाम उस एंकर से श्रृंखलित होता है जिस पर गेटवे भरोसा करता है।
प्रबंधित सेवाएँ अक्सर CSR छोड़ देती हैं और पूरा बंडल जारी कर देती हैं। यह उचित सौदा है जब वही प्रदाता पहले से टनल समाप्त करता है और CA रखता है। कुंजी रखने से उसकी सुरक्षा नहीं सुधरती, क्योंकि प्रदाता कभी भी नई बना सकता है।
बंडल आयात होते हैं, स्थापित नहीं
सुरक्षा जैसे नाम वाले विक्रेता बंडल अक्सर OpenVPN प्रोफ़ाइल होते हैं। इनमें कॉन्फ़िगरेशन और कभी-कभी प्रमाणपत्र होते हैं, और ये कुछ भी स्थापित नहीं करते। फ़ाइल को ऐसे क्लाइंट में आयात करें जो प्रोटोकॉल बोलता है, और कनेक्शन कॉन्फ़िगर हो जाता है।
संभालने का नियम सामग्री से निकलता है। यदि प्रोफ़ाइल में निजी कुंजी अंतर्निहित है, तो यह एक क्रेडेंशियल है और पासवर्ड जैसी ही देखभाल की हकदार है: कोई ईमेल नहीं, कोई रिपॉज़िटरी नहीं, कोई साझा डाउनलोड फ़ोल्डर नहीं। जब ऑपरेटर ca.crt, client.crt और client.key अलग-अलग देता है, तो उन्हें प्रतिबंधित अनुमतियों के साथ साथ रखें और प्रोफ़ाइल को उनकी ओर इंगित करें।
वे जाँचें जोड़ें जो ऑपरेटर ने छोड़ दी हों
राउटर द्वारा बनाई गई प्रोफ़ाइल में कभी-कभी पीयर सत्यापन नहीं होता। remote-cert-tls server माँगता है कि पीयर प्रमाणपत्र में सर्वर प्रमाणीकरण का उद्देश्य हो, ताकि क्लाइंट प्रमाणपत्र को सर्वर के रूप में दोबारा न चलाया जा सके। वह एक पंक्ति स्पष्ट औचित्य वाला छोटा परिवर्तन है।
verify-x509-name तब आगे जाता है जब ऑपरेटर अपेक्षित विषय या SAN का नाम बता सके। दोनों प्रोफ़ाइल में छोटे जोड़ हैं, और दोनों उचित हैं। आयात करने से पहले जाँचें कि आपको क्या मिला।
openssl x509 -in client.crt -noout -issuer -subject -dates
openssl verify -CAfile ca.crt client.crt
सत्यापन सेटिंग्स टूटी श्रृंखला की मरम्मत नहीं हैं। यदि जारीकर्ता गलत है, तो उत्तर सही CA का प्रमाणपत्र है, जाँच बंद करने वाला कोई फ़्लैग नहीं। सत्यापन बंद करना प्रमाणीकरण विफलता को अनदेखी विफलता में बदल देता है।
एक बंडल माँगें: प्राधिकरण का प्रमाणपत्र PEM के रूप में, उस प्राधिकरण द्वारा हस्ताक्षरित क्लाइंट प्रमाणपत्र, आपकी बनाई कुंजी या किसी ऐसे चैनल से आई कुंजी जिस पर आप भरोसा करते हैं, और वह सटीक सर्वर नाम जो प्रमाणपत्र प्रस्तुत करेगा। उसी संदेश में समाप्ति तिथि लिखें, क्योंकि समाप्त प्रमाणपत्र महीनों बाद नेटवर्क खराबी जैसा दिखता है।