Σφάλμα curl 77: τοποθεσίες επαλήθευσης πιστοποιητικού σε εγκατάσταση VPN
Το σφάλμα 77 είναι αποτυχία τοπικής εισόδου CA, όχι κακό πιστοποιητικό διακομιστή. Βρείτε το αρχείο εμπιστοσύνης που διαβάζει το curl, διορθώστε το και ελέγξτε το σενάριο πριν το εκτελέσετε.
Επικολλάτε τη μονόστιχη εντολή εγκατάστασης από ένα φροντιστήριο, πατάτε Enter και παίρνετε curl: (77). Το μήνυμα αναφέρει τοποθεσίες επαλήθευσης πιστοποιητικού, οπότε το ένστικτο είναι να υποθέσετε ότι το πιστοποιητικό του παρόχου VPN είναι χαλασμένο και να αναζητήσετε μια σημαία που παρακάμπτει την επαλήθευση. Αυτή η ανάγνωση είναι λανθασμένη, και το να ενεργήσετε βάσει αυτής μετατρέπει ένα τοπικό πρόβλημα αρχείου σε απόφαση ασφαλείας. Ας το πάμε από την αρχή.
Βήμα 1: διαβάστε τι σημαίνει ο αριθμός
Το σφάλμα 77 αφορά την τοπική είσοδο CA: το curl δεν μπόρεσε να διαβάσει ή να φορτώσει το υλικό πιστοποιητικού που του ζητήθηκε να εμπιστευτεί. Το σφάλμα 60 αφορά τον συνομιλητή, όταν η αλυσίδα του διακομιστή δεν επαληθεύεται. Εμφανίζονται δίπλα-δίπλα στα φροντιστήρια και σημαίνουν αντίθετα πράγματα.
Αν η έξοδός σας λέει 77, ο διακομιστής δεν ήταν ποτέ το πρόβλημα. Ο πελάτης δεν μπόρεσε να ανοίξει το αρχείο που ήθελε να χρησιμοποιήσει για τον έλεγχο, και αυτό είναι πρόβλημα διαδρομής, δικαιωμάτων ή πακεταρίσματος στο μηχάνημά σας.
Βήμα 2: διαβάστε την εντολή που αντιγράψατε
Οι αντιγραμμένες εντολές κρύβουν χαρακτήρες. Το πεζό -l είναι --list-only, που αφορά την παράθεση πρωτοκόλλων. Το κεφαλαίο -L είναι --location, που ακολουθεί μια ανακατεύθυνση HTTP. Δεν είναι εναλλακτικές γραφές, και ένα φροντιστήριο που γράφει το ένα ενώ περιγράφει το άλλο στέλνει τον κόσμο σε μια διαδρομή ανακατεύθυνσης που δεν είχε ποτέ σκοπό.
Το να ακολουθήσετε μια ανακατεύθυνση δεν διορθώνει μια διαδρομή χώρου εμπιστοσύνης και δεν αποδεικνύει ότι ο τελικός κεντρικός υπολογιστής είναι ο εκδότης που εννοούσατε. Αν η εντολή προήλθε από δημοσίευση σε φόρουμ, πληκτρολογήστε την ξανά από τις οδηγίες του ίδιου του έργου αντί να εμπιστεύεστε την επικόλληση.
Βήμα 3: βρείτε ποια είσοδο CA χρησιμοποιεί αυτή η έκδοση
Ξεκινήστε αναγνωρίζοντας το δυαδικό αρχείο, γιατί η απάντηση εξαρτάται από το πώς μεταγλωττίστηκε:
curl --versionΚαταγράψτε την έκδοση και το TLS backend. Μια έκδοση με εγγενή χώρο εμπιστοσύνης διαβάζει τον χώρο του συστήματος μέσω της βιβλιοθήκης TLS, ενώ μια έκδοση που δείχνει σε bundle διαβάζει αρχείο. Ένα ρητό --cacert, μια ρύθμιση CURL_CA_BUNDLE ή ένα περιτύλιγμα shell μπορούν να υπερισχύσουν οποιουδήποτε από τα δύο, οπότε μια εγκατάσταση πακέτου μπορεί να μην αγγίξει το αρχείο που πραγματικά αποτυγχάνει.
Για χώρο βασισμένο σε αρχείο, ελέγξτε τρία πράγματα με σειρά: αν η διαδρομή υπάρχει, αν ο λογαριασμός που καλεί μπορεί να τη διαβάσει και αν περιέχει το υλικό CA που περιμένετε. Ένα bundle με λάθος δικαιώματα αποτυγχάνει ακριβώς όπως ένα που λείπει, και τα δύο αποτυγχάνουν πριν γίνει οποιαδήποτε συνομιλία δικτύου για τον διακομιστή.
Βήμα 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 λειτουργεί ξανά, όχι όταν ο εγκαταστάτης σταματήσει να παραπονιέται.