आप किसी ट्यूटोरियल से इंस्टॉलर की एक पंक्ति की कमांड चिपकाते हैं, Enter दबाते हैं और मिलता है curl: (77)। संदेश प्रमाणपत्र सत्यापन स्थानों का ज़िक्र करता है, इसलिए सहज ही लगता है कि VPN प्रदाता का प्रमाणपत्र टूटा हुआ है और सत्यापन छोड़ने वाला फ़्लैग खोजना चाहिए। यह पढ़ना ग़लत है, और उस पर अमल करना स्थानीय फ़ाइल की समस्या को सुरक्षा का फ़ैसला बना देता है। शुरू से पीछे चलें।

चरण 1: पढ़ें कि इस संख्या का क्या अर्थ है

त्रुटि 77 स्थानीय CA इनपुट के बारे में है: curl उस प्रमाणपत्र सामग्री को पढ़ या लोड नहीं कर सका जिस पर भरोसा करने को कहा गया था। त्रुटि 60 सामने वाले पक्ष के बारे में है, जब सर्वर की श्रृंखला मान्य नहीं होती। ट्यूटोरियल में दोनों साथ-साथ दिखती हैं और उल्टा अर्थ रखती हैं।

अगर आपका आउटपुट 77 कहता है, तो सर्वर कभी समस्या नहीं था। क्लाइंट उस फ़ाइल को नहीं खोल सका जिसे वह जाँच के लिए इस्तेमाल करना चाहता था, और यह आपकी मशीन पर पथ, अनुमति या पैकेजिंग की समस्या है।

चरण 2: जो कमांड आपने कॉपी की, उसे पढ़ें

कॉपी की गई कमांड अक्षर छिपाती हैं। छोटा -l है --list-only, जो प्रोटोकॉल सूचीबद्ध करने पर लागू होता है। बड़ा -L है --location, जो HTTP रीडायरेक्ट का अनुसरण करता है। ये अलग-अलग वर्तनी नहीं हैं, और जो ट्यूटोरियल एक लिखता है जबकि दूसरे का वर्णन करता है, वह लोगों को ऐसे रीडायरेक्ट रास्ते पर भेजता है जो कभी इरादा नहीं था।

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

चरण 3: पता लगाएं कि वह बिल्ड कौन-सा CA इनपुट इस्तेमाल करता है

बाइनरी की पहचान से शुरू करें, क्योंकि उत्तर इस पर निर्भर करता है कि इसे कैसे कंपाइल किया गया:

curl --version

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

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

चरण 4: इनपुट ठीक करें, सत्यापन नहीं

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

URL को HTTP में न बदलें, --insecure न जोड़ें, और किसी अस्पष्ट डाउनलोड से कॉपी किए गए प्रमाणपत्र पर भरोसा न करें। इनमें से हर बदलाव curl जो नहीं पढ़ सका उसे ठीक करने के बजाय यह बदलता है कि आप क्या स्वीकार करने को तैयार हैं, और बदलाव आमतौर पर घटना से ज़्यादा टिकता है।

संख्याओं के लिए संदर्भ है curl त्रुटि सूची, और यह एक बार ध्यान से पढ़ने के लिए काफ़ी छोटी है।

चरण 5: डाउनलोड करें, देखें, फिर चलाएँ

इंस्टॉलर को उसी कमांड में shell में पाइप करने के बजाय एक फ़ाइल में लाएँ। यह एक बदलाव उस स्थानांतरण को अलग करता है जिसे आप जाँच सकते हैं, उस कोड से जो आपके विशेषाधिकारों के साथ चलता है।

curl -fL -o vpn-installer.sh https://example.invalid/install.sh
file vpn-installer.sh
head -n 40 vpn-installer.sh

जाँचें कि प्रतिक्रिया वही स्क्रिप्ट है जिसकी आपने अपेक्षा की थी, न कि HTML त्रुटि पृष्ठ, रीडायरेक्ट सूचना या खाली फ़ाइल। अगर प्रकाशक चेकसम या हस्ताक्षर देता है, तो उसे उनकी दस्तावेज़ीकृत रिलीज़ प्रक्रिया से सत्यापित करें, उसी फ़ोरम थ्रेड में उद्धृत मान से नहीं।

याद रखें HTTPS ने क्या किया और क्या नहीं। उसने आपके द्वारा संपर्क किए गए होस्ट तक परिवहन को प्रमाणित किया; उसने स्क्रिप्ट की सामग्री की समीक्षा नहीं की, और यह नहीं बताता कि प्रकाशक भरोसेमंद है या नहीं।

चरण 6: इंस्टॉल के चरणों को अलग रखें

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

अगर इंस्टॉल सफल हो और टनल ऊपर आ जाए, तो टिकट बंद करने से पहले रूट और एक वास्तविक गंतव्य सत्यापित करें। curl त्रुटि तब ठीक होती है जब सादा curl -I https://example.invalid फिर से काम करे, तब नहीं जब इंस्टॉलर शिकायत करना बंद कर दे।

संबंधित लेख