Γιατί το OpenVPN στα Windows λέει ca: διαδρομή χωρίς εισαγωγικά, όχι κακό πιστοποιητικό
Μια διαδρομή Program Files χωρίς εισαγωγικά χωρίζεται σε πολλά ορίσματα και ο αναλυτής κατηγορεί την επιλογή. Ελέγξτε τα εισαγωγικά, τη γραμμή του πελάτη και την κωδικοποίηση.
OpenVPN δεν ξεκινά, και το μήνυμα αποτυχίας δείχνει μια γραμμή που φαίνεται εντάξει: Unrecognized option or missing or extra parameter(s) in office.ovpn:42: ca. Το πιστοποιητικό δεν άλλαξε, το αρχείο ανοίγει σε επεξεργαστή, και τίποτα στη διαδρομή δεν φαίνεται λάθος. Ο αναλυτής δεν αντιλέγει στο όνομα της επιλογής· αντιλέγει στο πόσα ορίσματα έφτασαν μαζί της. Τέσσερις έλεγχοι λύνουν σχεδόν κάθε τέτοια περίπτωση, και αξίζει να εκτελεστούν με σειρά κόστους.
Γιατί ο αναλυτής κατηγορεί την επιλογή
Κάθε γραμμή ρύθμισης χωρίζεται σε κενά και σε εισαγωγικά πριν τη δει οποιαδήποτε επιλογή. Έτσι μια τιμή που περιέχει κενό φτάνει ως πολλά ορίσματα αν δεν περικλείεται, και η επιλογή στην οποία ανήκε η γραμμή αναφέρει την ασυμφωνία. Στα Windows ο προεπιλεγμένος κατάλογος εγκατάστασης το κάνει βέβαιο, επειδή το C:\Program Files βρίσκεται κατασκευαστικά στη μέση της διαδρομής. Το πιστοποιητικό δεν ανοίγει ποτέ σε αυτή την αποτυχία, οπότε ο έλεγχος αν υπάρχει το αρχείο δεν αποδεικνύει τίποτα χρήσιμο.
Ο αριθμός γραμμής που αναφέρεται είναι συνήθως σωστός, και η επιλογή που αναφέρεται είναι εκείνη που κατανάλωσε τη γραμμή. Όταν η επιλογή που ονομάζεται είναι μία που ξέρετε ότι δεν γράψατε ποτέ, διαβάστε τη γραμμή από πάνω, επειδή ένα χαμένο εισαγωγικό μέσα σε προηγούμενο μπλοκ μετατοπίζει την ανάλυση. Έτσι ένα μπλοκ πιστοποιητικού καταλήγει να κατηγορείται για το πλήθος ορισμάτων.
ca C:\Program Files\OpenVPN\config\office-ca.crtΒάλτε εισαγωγικά σε κάθε διαδρομή με κενό
Ένα ζεύγος διπλών εισαγωγικών γύρω από την τιμή είναι όλη η επισκευή, και οι κάθετες προς τα εμπρός γίνονται δεκτές στα Windows, οπότε η διαφυγή δεν γίνεται ποτέ μέρος του προβλήματος. Διορθώστε κάθε επιλογή διαδρομής στο ίδιο πέρασμα, επειδή ο αναλυτής σταματά στην πρώτη αποτυχία και η επόμενη απλώς περιμένει την επόμενη επανεκκίνηση. Το σύνολο περιλαμβάνει συνήθως ca, cert, key, tls-auth και auth-user-pass.
ca "C:/Program Files/OpenVPN/config/office-ca.crt"
cert "C:/Program Files/OpenVPN/config/office.crt"
key "C:/Program Files/OpenVPN/config/office.key"Μια αναζήτηση με το όνομα του καταλόγου βρίσκει κάθε εμφάνιση γρηγορότερα από το διάβασμα του αρχείου. Εκτελέστε την πριν από οποιαδήποτε επεξεργασία, ώστε η λίστα να είναι πλήρης:
Select-String -Path .\office.ovpn -Pattern 'Program Files'Η μετακίνηση του προφίλ σε διαδρομή χωρίς κενά είναι έγκυρη εναλλακτική, και είναι έγκυρη μόνο αν κάθε διαδρομή μετακινηθεί μαζί του. Ένα μισομετακινημένο προφίλ αναπαράγει το ίδιο σφάλμα με διαφορετικό όνομα αρχείου, κάτι που εντοπίζεται δυσκολότερα επειδή το μήνυμα δείχνει τώρα διαδρομή που μόλις δημιουργήσατε. Διαλέξτε μία προσέγγιση και ολοκληρώστε την.
Ανακτήστε τη δήλωση λειτουργίας πριν από τα πιστοποιητικά
Η δεύτερη συνηθισμένη αιτία παράγει άλλο μήνυμα με το ίδιο χαμένο απόγευμα. Το προφίλ πελάτη πρέπει να δηλώνει τη λειτουργία του κοντά στην κορυφή, και αυτή η δήλωση χάνεται εύκολα όταν επικολλούνται μόνο τα μπλοκ πιστοποιητικών σε νέο αρχείο. Χωρίς αυτήν το OpenVPN διαβάζει το αρχείο με διαφορετικό σύνολο προεπιλογών, και η ζημιά εμφανίζεται πολύ αργότερα ως σύγκρουση μεταξύ επιλογών ή ως αποτυχία σύνδεσης. Η γραμμή που λείπει είναι φθηνή στον έλεγχο και ακριβή στη λήθη.
client
dev tun
proto udp
remote vpn.example.net 1194Κρατήστε μία οδηγία ανά γραμμή όσο είστε εκεί. Οι ενωμένες γραμμές παράγουν ακριβώς το σφάλμα πλήθους ορισμάτων της πρώτης ενότητας, και η γραμμή που αναφέρεται φαίνεται λογική επειδή η ένωση συνέβη εκεί όπου ο επεξεργαστής τύλιξε το κείμενο. Διαβάστε την ακατέργαστη γραμμή, όχι την απεικονισμένη.
Η ζημιά κωδικοποίησης μοιάζει με όνομα επιλογής
Ένα αρχείο που αποθηκεύτηκε ως UTF-16, μαζί με σήμανση σειράς byte, κρύβει την πρώτη του επιλογή από τον αναλυτή, και περιπλανώμενα byte μπορούν να κολλήσουν στο όνομα της επιλογής μέσα στο μήνυμα. Αποθηκεύστε το αρχείο ως UTF-8 χωρίς σήμανση σειράς byte, μετά ανοίξτε το ξανά και επιβεβαιώστε ότι ο πρώτος χαρακτήρας είναι κανονικό γράμμα. Οι επεξεργαστές, η ανακατεύθυνση στο PowerShell και το κείμενο που επικολλήθηκε από παράθυρο συνομιλίας αλλάζουν την κωδικοποίηση χωρίς να ρωτήσουν.
Format-Hex .\office.ovpn | Select-Object -First 1Η σήμανση σειράς byte εμφανίζεται ως αρχικά byte σήμανσης πριν από οποιοδήποτε κείμενο, και η χειροκίνητη διαγραφή αυτών των χαρακτήρων είναι χαμένη κίνηση επειδή ο επεξεργαστής τα ξαναγράφει στην επόμενη αποθήκευση. Αποθηκεύστε ξανά το αρχείο με ρητή κωδικοποίηση. Οι καταλήξεις γραμμών είναι πιο επιεικείς, αλλά ένα αρχείο χωρίς αλλαγή γραμμής στο τέλος μπορεί ακόμη να συγχωνεύσει την τελευταία οδηγία με την προηγούμενη μετά από μια επεξεργασία.
Ποιος έλεγχος πρώτος, και γιατί
Ξεκινήστε από την κωδικοποίηση, επειδή κοστίζει μία εντολή και ακυρώνει κάθε άλλη ανάγνωση του αρχείου. Έπειτα τα εισαγωγικά, μετά η δήλωση λειτουργίας και οι άλλες υποχρεωτικές οδηγίες, και μόνο μετά από αυτά τα πιστοποιητικά, τα κλειδιά και τα διαπιστευτήρια. Η εργασία με αυτή τη σειρά κρατά κάθε βήμα αναστρέψιμο, επειδή ένα πιστοποιητικό που αντικαταστάθηκε για να διορθωθεί πρόβλημα εισαγωγικών αφήνει μια λειτουργική εγκατάσταση με νέα αστοχία δύο επεξεργασίες μακριά από το αρχικό. Η σειρά μετράει περισσότερο από τους επιμέρους ελέγχους.
Κρατήστε ένα άθικτο αντίγραφο του αρχείου όπως το παρέδωσε ο διαχειριστής. Αν μια μεταγενέστερη επεξεργασία το σπάσει, μια διαφορά με εκείνο το αντίγραφο δείχνει αν μετακινήθηκε εισαγωγικό, αλλαγή γραμμής ή byte σήμανσης, κάτι γρηγορότερο από το να ξαναδιαβάσετε το σφάλμα. Η αναφορά επιλογών για κάθε οδηγία βρίσκεται στο εγχειρίδιο του OpenVPN για την εγκατεστημένη έκδοση.