बैच फ़ाइल “सिस्टम निर्दिष्ट रजिस्ट्री कुंजी या मान नहीं ढूँढ सका” संदेश के साथ रुक जाती है और सब मान लेते हैं कि प्रमाणपत्र प्राधिकरण टूट गया है। ऐसा नहीं है, या कम से कम अभी नहीं: स्क्रिप्ट सॉफ़्टवेयर खोजते समय विफल हुई, इससे पहले कि वह Easy-RSA से कुंजी के साथ कुछ करने को कहे। यह क्रम मायने रखता है, क्योंकि इसका अर्थ है कि मरम्मत एक खोज समस्या है और PKI केवल दर्शक है। विफल पंक्ति पढ़ना ही पूरा निदान है, और यह किसी भी वैकल्पिक उपाय से कम समय लेता है।

त्रुटि CA को छूने से पहले होती है

पुरानी Easy-RSA 2 बैच फ़ाइलें रजिस्ट्री से पूछकर OpenSSL या OpenVPN इंस्टॉलेशन ढूँढती हैं, फिर जो मिलता है उसके आधार पर चर सेट करती हैं। जब क्वेरी कुछ नहीं लौटाती, तो कोई भी प्रमाणपत्र क्रिया चलने से पहले स्क्रिप्ट रुक जाती है।

इसलिए रजिस्ट्री कुंजी के बारे में संदेश स्क्रिप्ट के वातावरण का प्रमाण है, CA निर्देशिका का नहीं।

दो रजिस्ट्री दृश्य, एक बैच फ़ाइल

32-बिट प्रक्रिया और 64-बिट प्रक्रिया अलग-अलग रजिस्ट्री दृश्य देख सकती हैं, और एक मान लेने वाली बैच फ़ाइल दूसरे में मौजूद प्रविष्टि चूक सकती है। ये केवल-पढ़ने वाली तुलनाएँ उस पुरानी कुंजी के लिए अंतर दिखाती हैं जिसे कुछ पुरानी स्क्रिप्ट उपयोग करती हैं:

reg query "HKLM\SOFTWARE\OpenVPN" /reg:32
reg query "HKLM\SOFTWARE\OpenVPN" /reg:64

Microsoft का reg query संदर्भ दृश्य चयनकर्ताओं का दस्तावेज़ीकरण करता है। दोनों को उसी संदर्भ में चलाएँ जिसमें विफल स्क्रिप्ट चली, क्योंकि दृश्य इस पर निर्भर करता है कि प्रक्रिया कैसे शुरू होती है और फ़्लैग पर भी। यदि प्रविष्टि केवल एक दृश्य में है, तो कुछ भी बदलने से पहले उस पथ की तुलना इंस्टॉल किए गए टूल से करें जिस ओर वह इंगित करती है। ऐसी कुंजी जो मौजूद है पर पुरानी इंस्टॉलेशन निर्देशिका बताती है, अनुपस्थित कुंजी से अलग खराबी है।

यदि दोनों में से किसी दृश्य में प्रविष्टि नहीं है, तो इंस्टॉलर ने उसे कभी नहीं बनाया, और हाथ से मान बनाने से टूल काम नहीं करेंगे।

/reg:64 को बिना शर्त न जोड़ें

लुभावना सुधार यह है कि हर क्वेरी में 64-बिट चयनकर्ता जोड़ें और आगे बढ़ें। कुछ इंस्टॉलेशन में यह सही है, और अन्य में यह स्क्रिप्ट को ऐसे दृश्य में भेजता है जहाँ वास्तव में कुछ नहीं है।

खोज तभी बदलें जब आप देख लें कि अपेक्षित मान किस दृश्य में है।

खोज PKI की मरम्मत नहीं है

यह त्रुटि यह सिद्ध नहीं करती कि CA प्रमाणपत्र, हस्ताक्षर कुंजी, सीरियल फ़ाइल या निरसन डेटाबेस क्षतिग्रस्त है। पुराने ट्यूटोरियल से नकल किया गया clean-all चलाने से बिल्कुल अलग वस्तुओं का समूह नष्ट हो जाएगा और खोज टूटी रहेगी। दोनों गतिविधियों को दिमाग़ में और टिकट में अलग रखें। यदि बाद में कोई प्रमाणपत्र क्रिया विफल हो, तो उसके अपने साक्ष्य पर उसका मूल्यांकन करें।

किसी भी प्रयोग से पहले CA निर्देशिका का बैकअप लें, उस प्रयोग से भी जिसके केवल-पढ़ने होने के बारे में आप निश्चित हैं।

Easy-RSA 3 पर जाना एक माइग्रेशन है

रखरखाव वाली इंस्टॉलेशन को वर्तमान पैकेज के अपने लॉन्चर और कॉन्फ़िगरेशन मॉडल का उपयोग करना चाहिए, और Easy-RSA 3, Easy-RSA 2 जैसा वही बैच-फ़ाइल वर्कफ़्लो नहीं है. नए PKI के लिए इसका क्विकस्टार्ट किसी मौजूदा प्राधिकरण के लिए माइग्रेशन निर्देश नहीं है। संस्करण बदलने से पहले CA सामग्री तथा जारी और निरसन रिकॉर्ड सुरक्षित रखें, और उस संस्करण के अपग्रेड मार्गदर्शन का पालन करें। टूल-खोज त्रुटि को गायब करने के लिए आधिकारिक निर्देशिका के भीतर प्रतिस्थापन CA आरंभ करना सूची का सबसे बुरा विकल्प है।

संस्करण परिवर्तन एक परियोजना है; रजिस्ट्री त्रुटि एक दोपहर है।

वह तुलना जो वास्तव में इसे हल करती है

चार बातें लिखें और उनकी सीधी तुलना करें:

  • कौन-सी स्क्रिप्ट चली, और कौन-सी पंक्ति विफल हुई।
  • उस पंक्ति ने कौन-सा रजिस्ट्री दृश्य पूछा।
  • स्क्रिप्ट ने किस निष्पादन योग्य पथ की अपेक्षा की।
  • मशीन पर वास्तव में कौन-सी इंस्टॉलेशन है।

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

संबंधित लेख