दोनों प्रोफ़ाइल ca.crt नाम की फ़ाइल लाते हैं, एक टनल ऊपर आता है और दूसरा श्रृंखला त्रुटि के साथ विफल होता है। दोनों फ़ाइलों को साथ-साथ खोलना इसे शायद ही सुलझाता है, और सत्यापन बंद करना इसे गलत दिशा में सुलझाता है। त्रुटि वास्तव में जो सवाल पूछती है वह अधिक संकीर्ण है: प्रत्येक प्रक्रिया किस प्रमाणपत्र को अपना भरोसा एंकर बनाकर लोड करती है, और क्या दोनों एक ही वस्तु हैं? पहले इसका उत्तर दें और शेष निदान को दिशा मिल जाएगी। फ़ाइल नाम पैकेजिंग लेबल है, और प्रोफ़ाइल में लिखा पथ भी आधिकारिक नहीं है, इसलिए सब कुछ इस पर निर्भर है कि प्रक्रिया वास्तव में क्या पढ़ती है।

वह प्रमाणपत्र खोजें जो क्लाइंट वास्तव में लोड करता है

OpenVPN प्राधिकरण को दो रूपों में स्वीकार करता है, और रूप तय करता है कि कौन-से बाइट मायने रखते हैं। प्रोफ़ाइल ca के साथ बाहरी फ़ाइल की ओर इशारा कर सकता है, या प्रमाणपत्र को प्रोफ़ाइल के भीतर ही <ca> ब्लॉक में एम्बेड कर सकता है। जब दोनों मौजूद हों, एम्बेड किया गया ब्लॉक जीतता है और प्रोफ़ाइल के बगल वाली फ़ाइल कभी नहीं खुलती।

विफल प्रोफ़ाइल पढ़ें और कुछ भी तुलना करने से पहले पता लगाएँ कि यह कौन-सा रूप इस्तेमाल करता है। पड़ोसी निर्देशिका से या जिस पैकेज से दूसरा प्रोफ़ाइल आया उससे ली गई प्रति आपको इस बारे में कुछ नहीं बताती कि यह प्रक्रिया किस पर भरोसा करती है। यही कॉन्फ़िगरेशन के पथ पर भी लागू होता है: यह उस स्थान के सापेक्ष हल होता है जहाँ क्लाइंट शुरू हुआ था, जो हमेशा वही निर्देशिका नहीं होती जिसे आप देख रहे हैं। प्रोफ़ाइल पढ़ें, फ़ोल्डर नहीं।

प्रमाणपत्र अपनी सामग्री से पहचाने जाते हैं: सार्वजनिक कुंजी, विषय और जारीकर्ता, वैधता विंडो और इन सब पर हस्ताक्षर। समान बाइट वाली दो फ़ाइलें चाहे कोई भी नाम हों एक ही प्रमाणपत्र हैं, और एक ही नाम वाली दो फ़ाइलें असंबंधित प्राधिकरण हो सकती हैं। नाम पैकेजिंग लेबल है, पहचान नहीं।

openssl से दोनों प्रतियों की फ़िंगरप्रिंट लें

फ़िंगरप्रिंट प्रमाणपत्र के DER एन्कोडिंग पर एक हैश है, वह रूप जिसे हस्ताक्षर कवर करता है, इसलिए पंक्ति अंत और हेडर पाठ इसे प्रभावित नहीं कर सकते। इसे प्रत्येक फ़ाइल के लिए गणना करें और आपके पास कोलन से अलग दो हेक्स स्ट्रिंग होंगी जो या तो मेल खाती हैं या नहीं। तुलना के सवाल का जवाब देने के लिए प्रमाणपत्र में और कुछ पढ़ने की ज़रूरत नहीं है।

openssl x509 -in /etc/openvpn/office/ca.crt -noout -fingerprint -sha256
openssl x509 -in ~/profiles/lab-ca.pem -noout -fingerprint -sha256

openssl को प्रोफ़ाइल पर ही इंगित करना लुभावना है, लेकिन यह फ़ाइल में पहले आने वाला प्रमाणपत्र ब्लॉक पढ़ता है, और प्रोफ़ाइल आमतौर पर <ca> से पहले <cert> रखता है। प्राधिकरण ब्लॉक निकालें, फिर निकाली गई फ़ाइल की फ़िंगरप्रिंट लें, क्योंकि यही वह प्रति है जिसे क्लाइंट वास्तव में इस्तेमाल करेगा।

sed -n '/^<ca>$/,/^<\/ca>$/p' office.ovpn | sed '1d;$d' > /tmp/office-ca.pem
openssl x509 -in /tmp/office-ca.pem -noout -fingerprint -sha256

समान फ़िंगरप्रिंट का अर्थ है कि भरोसा सामग्री एक ही है और श्रृंखला त्रुटि का कोई और कारण है, जो अलग जाँच है। अलग फ़िंगरप्रिंट का अर्थ है अलग प्रमाणपत्र, और वहीं अगला खंड शुरू होता है।

हमला मानने से पहले असंगति पढ़ें

अलग फ़िंगरप्रिंट का अर्थ है अलग प्रमाणपत्र और इससे अधिक कुछ नहीं। पुनः जारी करना, रोटेशन, नया नाम पाया प्राधिकरण या पुराना बंडल सभी पूरी तरह वैध इतिहास वाली अलग फ़ाइलें बनाते हैं। कौन-सी तैनाती की है यह ऑपरेटर या तैनाती रिकॉर्ड के लिए सवाल है, फ़ाइल के संशोधन समय के लिए नहीं। अभिलेख टाइमस्टैम्प की प्रतिलिपि करते हैं, इसलिए नई फ़ाइल अपने आप सही एंकर नहीं होती।

अपने आप पर हस्ताक्षर करने वाली रूट सामान्य है, इसलिए एक मिलना किसी समस्या का प्रमाण नहीं है। सत्यापनकर्ता का काम सर्वर प्रमाणपत्र से उसे दिए गए एंकर तक पथ बनाना है, और श्रृंखला त्रुटि का अर्थ आमतौर पर यह है कि वह पथ पूरा नहीं हो सका।

जाँचें कि विफल प्रोफ़ाइल का एंकर ऐसा प्राधिकरण है जिससे तैनाती अभी भी जारी करती है। यदि फ़िंगरप्रिंट तैनाती रिकॉर्ड में किसी से मेल नहीं खाती, तो प्रोफ़ाइल बस पुराना है, और क्लाइंट पक्ष का कोई ट्यूनिंग इसे ठीक नहीं करेगा।

सत्यापन बंद किए बिना भरोसा ठीक करें

अल्पकालिक उपाय सत्यापन बंद करना या श्रृंखला के हर प्रमाणपत्र को एंकर के रूप में जोड़ना है। दोनों संदेश को गायब कर देते हैं, और दोनों बदल देते हैं कि क्लाइंट अब से किन सर्वरों को स्वीकार करेगा। सत्यापन फिर से चालू करें, इच्छित एंकर स्थापित करें और फिर परीक्षण करें।

यदि श्रृंखला अब बनती है लेकिन कोई अलग त्रुटि दिखती है, तो यह प्रगति है: नाम सत्यापन, वैधता तिथियाँ और निरसन अलग संदेशों के साथ अलग जाँच हैं। फ़िंगरप्रिंट जोड़ी और मूल त्रुटि पाठ को टिकट में साथ रखें, ताकि अगला व्यक्ति देख सके कि कौन-सा एंकर लोड हुआ और किसकी अपेक्षा थी। फ़िंगरप्रिंट की जोड़ी हैंडओवर नोट में चिपकाने के लिए काफ़ी छोटी है, और अगली घटना तब दोपहर के बजाय पाँच मिनट लेती है।

उसी प्रमाणित चैनल से सही प्राधिकरण प्राप्त करें जिसने प्रोफ़ाइल दिया। सर्वर से प्रमाणपत्र खींचना क्योंकि उसका विषय परिचित लगता है एक अलग कार्य है, और यह चुपचाप बढ़ा देता है कि क्लाइंट किस पर भरोसा करेगा।

संबंधित लेख