Easy-RSA कह रहा है कि PKI नहीं है? यह कहीं और देख रहा है
CA कुंजी या index.txt का गायब होना आमतौर पर बताता है कि Easy-RSA 3 ने कोई दूसरी डायरेक्टरी चुनी है। पहले PKI चयनकर्ता, प्राथमिकता और जारीकर्ता की फ़िंगरप्रिंट जाँचें।
ca.crt या index.txt गायब होने पर कमांड रुक जाता है, जबकि CA महीनों से प्रमाणपत्र जारी कर रहा है। अधिकार में कुछ नहीं बदला; कमांड ने बस कहीं और देखा। Easy-RSA 3 किसी विकल्प, पर्यावरण चर, vars फ़ाइल और अंतर्निहित डिफ़ॉल्ट से PKI डायरेक्टरी तय करता है, और इनमें से कोई भी तैनाती के अधिकार से दूर इंगित कर सकता है। कुछ भी बनाने से पहले जाँचें कि कौन जीता।
त्रुटि किसी फ़ाइल का नाम लेती है, डायरेक्टरी का नहीं
इंस्टॉलेशन डायरेक्टरी और जारीकर्ता डायरेक्टरी दो अलग जगह हैं। मशीन पर easyrsa मिलना केवल यह साबित करता है कि टूल इंस्टॉल है, यह नहीं कि उसे वह अधिकार मिला जिस पर आपका VPN भरोसा करता है।
इसीलिए पैकेज दोबारा इंस्टॉल करना या init चरण फिर चलाना उपयोगी लगता है और कुछ नहीं बदलता।
बाकी सब से पहले चयनकर्ता जाँचें
Easy-RSA 3 में चयनकर्ता है EASYRSA_PKI या उससे मेल खाता --pki-dir विकल्प। कोई निरपेक्ष पथ दें, जैसे --pki-dir=/srv/pki/office, और उत्तर इस पर निर्भर होना बंद कर देता है कि आप संयोग से कहाँ खड़े थे। यह एक आदत इस बग की पूरी श्रेणी हटा देती है, ख़ासकर cron या CI चेकआउट से चलने वाली स्क्रिप्ट के लिए।
पहले पीढ़ी की पुष्टि करें, क्योंकि Easy-RSA 2 की vars फ़ाइल और build-key की आदत Easy-RSA 3 की अपेक्षा से अलग मॉडल है। easyrsa --version कुछ और करने से पहले पीढ़ी छापता है, और ./easyrsa --help उपकमांड सूचीबद्ध करता है: लक्ष्य build-key का अर्थ 2.x है, जबकि build-client-full का अर्थ 3.x है। पुराना KEY_DIR पथ 3.x कॉल में ले जाना क्योंकि डायरेक्टरी का नाम परिचित लगता है, ठीक यही त्रुटि पैदा करता है।
यदि संस्करण स्ट्रिंग और कमांड सिंटैक्स मेल नहीं खाते, तो रुकें और इंस्टॉल किए गए रिलीज़ का दस्तावेज़ पढ़ें।
प्राथमिकता बताती है कि vars फ़ाइल क्यों हारी
प्रलेखित प्राथमिकता कमांड-लाइन विकल्प, फिर पर्यावरण, फिर vars फ़ाइल, फिर अंतर्निहित डिफ़ॉल्ट है। इसलिए vars में सही मान विरासत में मिले पर्यावरण चर से हार जाता है, और यह इस विफलता का शांत संस्करण है। पूरे पर्यावरण को टिकट में उड़ेलने के बजाय इच्छित चर और फ़ाइल चयन जाँचें। दोनों के बीच का अंतर आमतौर पर एक रहस्य है।
श्रृंखला को क्रम से देखें और नोट करें कि कमांड द्वारा उपयोग किया गया पथ किस स्रोत ने दिया। यह जानने के बाद, सुधार एक फ़्लैग या export है, नया प्रमाणपत्र अधिकार नहीं।
Easy-RSA कॉन्फ़िगरेशन संदर्भ चयनकर्ता और प्राथमिकता को परिभाषित करता है, और यही टिकट में डालने वाला उद्धरण है।
सार्वजनिक सामग्री से जारीकर्ता की पुष्टि करें
सामान्य फ़ाइल-आधारित जारीकर्ता के साथ, पढ़ें ca.crt और उसकी फ़िंगरप्रिंट उस जारीकर्ता रिकॉर्ड से मिलाएँ जिसे आपने स्वीकृत किया। मेल खाता विषय नाम पहचान का प्रमाण नहीं है, और production नाम की डायरेक्टरी भी नहीं। केवल फ़िंगरप्रिंट ही मिली हुई फ़ाइल को उस अधिकार से जोड़ती है जिस पर आपके साथियों को भरोसा करने को कहा गया था।
केवल-पढ़ने की जाँच पर्याप्त है: openssl x509 -in /srv/pki/office/ca.crt -noout -subject -issuer -serial -fingerprint -sha256.
फिर डायरेक्टरी की भूमिका तय करें। क्लाइंट द्वारा उपयोग की जाने वाली अनुरोध डायरेक्टरी जारीकर्ता डेटाबेस नहीं है, और ऑफ़लाइन रखी गई हस्ताक्षर कुंजी का हर VPN होस्ट पर कोई काम नहीं। गायब ca.key उस लेआउट में एक डिज़ाइन विशेषता है, वैकल्पिक अधिकार गढ़ने की अनुमति नहीं।
यदि स्थिति वास्तव में चली गई है
कभी-कभी पथ सही है और स्थिति वास्तव में वहाँ नहीं है। खाली index.txt और फिर से शुरू किया गया क्रमिक काउंटर आपको ऐसा PKI देते हैं जो स्वस्थ दिखता है और उन प्रमाणपत्रों के बारे में कुछ साबित नहीं कर सकता जिन्हें उसने कभी देखा ही नहीं: नवीनीकरण पुराने को रद्द नहीं करेंगे, और नए नंबर इतिहास से टकराएँगे। इसके बजाय CA के स्वीकृत बैकअप से पुनर्स्थापित करें, क्योंकि कहीं और खाली PKI शुरू करना केवल त्रुटि को स्थानांतरित करता है और पीछे दूसरा, असंबंधित अधिकार छोड़ देता है।
जब पथ और जारीकर्ता सहमत हों, अगली विफलता को उसी की योग्यता पर लें। Permission denied, पासफ़्रेज़ चाहने वाली हस्ताक्षर कुंजी, और गायब जारी रिकॉर्ड तीन अलग खराबियाँ हैं, और उनमें से केवल एक उस डायरेक्टरी के बारे में है जिसे आपने अभी ठीक किया।
पथ की गलती छिपाने के लिए कभी कुंजी एन्क्रिप्शन न हटाएँ और न डायरेक्टरी अनुमतियाँ बढ़ाएँ। गलती सुधारना सस्ता है; मरम्मत नहीं।