ट्रस्ट स्टोर से पुराना VPN प्रमाणपत्र कैसे हटाएँ
VPN प्रोफ़ाइल हटाने पर प्रमाणपत्र OS, ब्राउज़र या ऐप स्टोर में रह जाता है। फ़िंगरप्रिंट से मिलान करें, सबसे संकीर्ण प्रति हटाएँ, फिर श्रृंखला सत्यापित करें।
आपका VPN क्लाइंट अनइंस्टॉल हो चुका है, प्रोफ़ाइल सेटिंग्स से गायब हो चुकी है, और सुरंग फिर भी पुराने क्रेडेंशियल के साथ ऊपर आती है। या आप इसे हटाते हैं, रीबूट करते हैं, और अगली सुबह इसे वापस पाते हैं। इनमें से कोई भी टूटा हुआ डिलीट बटन नहीं है। प्रोफ़ाइल एक कॉन्फ़िगरेशन है; प्रमाणपत्र कुंजी सामग्री के साथ-साथ एक ट्रस्ट निर्णय है जो ऐसे स्टोर में दर्ज होता है जिसकी ओर प्रोफ़ाइल केवल इशारा करती है। आपके हाथ में इनमें से कौन है, यही तय करता है कि 'हटाने' का अर्थ क्या होना चाहिए।
प्रोफ़ाइल प्रमाणपत्र नहीं है
VPN सेटअप में तीन अलग-अलग वस्तुओं को 'प्रमाणपत्र' कहा जाता है। क्लाइंट पहचान एक निजी कुंजी वाला लीफ प्रमाणपत्र है, और गेटवे इसका उपयोग यह तय करने के लिए करता है कि आप कौन हैं। सर्वर का अपना लीफ और उसका इंटरमीडिएट वही हैं जिन्हें आपका क्लाइंट कनेक्ट करते समय जाँचता है। ट्रस्ट एंकर, आमतौर पर एक रूट या निजी CA प्रमाणपत्र, वही है जो श्रृंखला को किसी भी तरह सत्यापन योग्य बनाता है। RFC 5280 इन्हें ट्रस्ट एंकर, इंटरमीडिएट और अंतिम इकाई कहता है, और श्रृंखला तभी मान्य होती है जब हर कड़ी अपने नीचे वाली पर हस्ताक्षर करती है।
पहचान हटाइए और एक डिवाइस पहुँच खो देता है। एंकर हटाइए और उस स्टोर के विरुद्ध सत्यापन करने वाला हर एप्लिकेशन उसके अंतर्गत जारी किसी भी चीज़ की जाँच करने की क्षमता खो देता है, जिसमें ऐसे कनेक्शन भी शामिल हैं जिनका VPN से कोई लेना-देना नहीं है। यही असमानता यहाँ पूरा जोखिम है: एक गेटवे के लिए स्थापित रूट अक्सर वही रूट होता है जो किसी आंतरिक पोर्टल, मेल सर्वर या पैकेज मिरर पर हस्ताक्षर करता है। याद रखें कि दोनों में से कौन आपके हाथ में है।
स्वामित्व तय करता है कि हटाना हटाया ही रहेगा या नहीं। अपने लैपटॉप पर केवल आप ही प्रमाणपत्र वापस रख सकते हैं। प्रबंधित डिवाइस पर कोई कॉन्फ़िगरेशन प्रोफ़ाइल या MDM पेलोड अगली चेक-इन पर इसे फिर से इंस्टॉल कर सकता है, इसीलिए यह 'वापस आता है' और इसीलिए ज़ोर से हटाने से मदद नहीं मिलती।
पता लगाएँ कि कौन-सा स्टोर अभी भी इसे रखे हुए है
लोग सेटिंग्स ऐप से शुरू करते हैं, जो एकमात्र जगह है जहाँ प्रमाणपत्र संग्रहीत नहीं होता। असली जगहें OS के ट्रस्ट स्टोर, ब्राउज़र का अपना स्टोर और एप्लिकेशन का निजी स्टोर हैं।
| Store | What deleting from it affects |
|---|---|
| Windows CurrentUser\My | your login session only |
| Windows LocalMachine Root | every user and service on the machine |
| macOS login or System keychain | one account, or all of them with sudo |
| Linux ca-certificates bundle | curl, git, Python, anything using the system bundle |
| Firefox cert9.db | Firefox only; it does not read the OS store |
सीरियल नंबर या फ़िंगरप्रिंट से मिलान करें, कभी भी डिस्प्ले नाम से नहीं। डिस्प्ले नाम वही तय करता है जिसने प्रमाणपत्र जारी किया और उनका दोबारा उपयोग होता है: 'Example VPN' तीन अलग-अलग कुंजियों वाले तीन प्रमाणपत्र हो सकते हैं, जिनमें से एक अब भी रोज़मर्रा के उपयोग में है।
certutil -user -store My
certutil -store Root
openssl x509 -in vpn-client.pem -noout -subject -issuer -serial -fingerprint -sha256
macOS पर security टूल वही तथ्य देता है, और find-identity दिखाता है कि किन प्रमाणपत्रों के साथ अभी भी निजी कुंजी जुड़ी है:
security find-certificate -a -c "Example VPN" -Z /Library/Keychains/System.keychain
security find-identity -v -p ssl-client
संकीर्ण वस्तु हटाएँ, साझा जारीकर्ता रखें
हटाने से पहले निर्यात करें। बैकअप के बिना एकमात्र रिकवरी फिर से जारी करना है, जिसका निजी CA पर अर्थ है PKI चलाने वाले के पास लौटना। निर्यात किया गया PFX भी वही है जो आप सौंपते हैं यदि हटाना गलत निर्णय साबित हो।
certutil -user -exportPFX -p backup My <serial> C:\temp\vpn-id.pfx
certutil -user -delstore My <serial>
Remove-Item Cert:\CurrentUser\My<thumbprint>
यह -user फ़्लैग वही है जिसे लोग गलती से छोड़ देते हैं। इसके बिना certutil मशीन स्टोर पर काम करता है, जिसका अर्थ है उन्नत शेल, अलग प्रमाणपत्र सेट और ऐसा प्रभाव दायरा जिसमें अब मशीन का हर दूसरा खाता भी शामिल है।
macOS और Linux पर आकार वही है: पहचानें, निर्यात करें, फिर उस सबसे संकीर्ण स्टोर से हटाएँ जो लक्षण की व्याख्या करता है। /usr/local/share/ca-certificates के अंतर्गत फ़ाइल हटाना और update-ca-certificates को फिर से चलाना पर्याप्त है; --fresh केवल तभी मदद करता है जब /etc/ssl/certs में सिमलिंक पहले से असंगत हों। RHEL परिवार के सिस्टम एंकर /etc/pki/ca-trust/source/anchors में रखते हैं, जहाँ trust anchor --remove वही काम करता है।
sudo security delete-certificate -Z <sha1> /Library/Keychains/System.keychain
sudo rm /usr/local/share/ca-certificates/example-vpn.crt
sudo update-ca-certificates
sudo trust anchor --remove /etc/pki/ca-trust/source/anchors/example-vpn.crt
CA प्रमाणपत्र हटाने से पहले जाँचें कि उससे और क्या श्रृंखलाबद्ध है। बंडल के अंदर के विषयों को सूचीबद्ध करना दो पंक्तियों की जाँच है और यह उत्तर देता है कि वह एंकर कोई दूसरा काम कर रहा है या नहीं:
openssl crl2pkcs7 -nocrl -certfile /etc/ssl/certs/ca-certificates.crt \
| openssl pkcs7 -print_certs -noout | grep -i example
फ़ाइल हटाना पहचान रद्द करना नहीं है
स्थानीय डिलीट एक प्रति हटाता है। निजी कुंजी अभी भी किसी पुराने टिकट से जुड़े p12 में, बैकअप फ़ोल्डर में या उसी समय स्थापित दूसरे लैपटॉप में हो सकती है। यदि यह क्लाइंट पहचान थी, तो गेटवे उस कुंजी की किसी भी प्रति को तब तक स्वीकार करता रहता है जब तक पहचान सर्वर पक्ष पर अस्वीकार न हो।
किसी OpenVPN PKI के लिए इसका अर्थ है प्रमाणपत्र रद्द करना और यह सुनिश्चित करना कि crl-verify जिस CRL का संदर्भ देता है वह वर्तमान है; easyrsa revoke फिर easyrsa gen-crl छोटा संस्करण है। पहचान प्रदाता से जुड़े गेटवे के लिए, वहाँ उपयोगकर्ता को अक्षम करें या डिवाइस हटाएँ, क्योंकि प्रमाणपत्र खेल में केवल एक क्रेडेंशियल है। खाता सक्रिय रहते हुए स्थानीय प्रति हटाना सफ़ाई जैसा दिखता है और है नहीं।
घटना कार्य का क्रम अलग है: पहले प्रमाणपत्र, उसका सीरियल नंबर और निरसन रिकॉर्ड सुरक्षित रखें, फिर हटाएँ और रद्द करें। वे रिकॉर्ड कुछ खर्च नहीं करते और काम करने वाला क्रेडेंशियल जगह पर छोड़ने की ज़रूरत नहीं पड़ती।
हैंडशेक और दूसरे ऐप से सत्यापित करें
श्रृंखला को बाहर से जाँचें, उस स्टोर सूची से नहीं जिसे आपने अभी संपादित किया है। स्टोर आपका संपादन दिखाता है; हैंडशेक परिणाम दिखाता है।
openssl s_client -connect vpn.example.com:443 -servername vpn.example.com \
-CAfile /etc/ssl/certs/ca-certificates.crt -verify_return_error < /dev/null
openssl verify -CAfile /etc/ssl/certs/ca-certificates.crt vpn-gateway.pem
0 का रिटर्न कोड इसका अर्थ है कि शेष एंकर अभी भी गेटवे को मान्य करते हैं। एंकर हटाने के बाद श्रृंखला त्रुटि अपेक्षित परिणाम है, और यह पुष्टि करती है कि आपने उपयोग में आने वाले एंकर को ही मारा, न कि ऐसे स्टोर में किसी नकल को जिसे क्लाइंट कभी नहीं पढ़ता। यदि कनेक्शन अभी भी काम करता है, तो दूसरी प्रति, ऐप में अंतर्निहित स्टोर या पिन किया गया प्रमाणपत्र खोजें, जो सभी अपनी ट्रस्ट सूची लाने वाले क्लाइंट में आम हैं।
फिर कुछ असंबंधित परखें: एक आंतरिक साइट, एक मेल क्लाइंट, एक पैकेज मिरर। यह बदलाव विंडो बंद होने से पहले प्रभाव दायरे को सस्ते में मापता है।
- भूमिका पहचान, इंटरमीडिएट या ट्रस्ट एंकर के रूप में पहचानी गई
- सीरियल नंबर और फ़िंगरप्रिंट दर्ज, और प्रति स्वीकृत स्थान पर निर्यात
- डिलीट उस सबसे संकीर्ण दायरे में किया गया जो लक्षण की व्याख्या करता है
- व्यक्ति या डिवाइस के जाने पर सर्वर पक्ष का प्राधिकरण रद्द किया गया
- हैंडशेक समझाया गया, और एक असंबंधित ऐप फिर से परखा गया
- MDM पेलोड या प्रबंधन प्रोफ़ाइल अद्यतन किया गया, अन्यथा प्रमाणपत्र वापस आता है
यदि रीबूट के बाद प्रमाणपत्र वापस आ गया है, तो काम पूरा नहीं हुआ: कुछ उसका मालिक है और उसे फिर से इंस्टॉल करता है। दोबारा हटाने से पहले उस मालिक को खोजें, क्योंकि तीसरा डिलीट पहले दो की तरह ही व्यवहार करेगा।