Οι επεκτάσεις αρχείων δεν προσδιορίζουν αλγορίθμους κλειδιών, και ένα περίβλημα .pem μπορεί να περιέχει υλικό RSA ή ECDSA. Το PEM περιγράφει πώς τυλίγονται τα byte, ενώ τα RSA και ECDSA ονομάζουν διαφορετικούς αλγορίθμους, και ένα αρχείο PKCS12 είναι ένα τρίτο πράγμα. Το strongSwan φορτώνει διαπιστευτήρια μέσω πρόσθετων και ενός backend διαμόρφωσης, οπότε ένα πιστοποιητικό μπορεί να εμφανίζεται σε λίστα ενώ το ιδιωτικό κλειδί δεν γίνεται ποτέ χρησιμοποιήσιμο. Διαχωρίστε αυτά τα επίπεδα πριν επεξεργαστείτε οποιοδήποτε μυστικό.

Κωδικοποίηση, αλγόριθμος και συσκευασία είναι τρία επίπεδα

Ένα αρχείο κλειδιού έχει κωδικοποίηση, αλγόριθμο και συχνά δοχείο. Το PEM είναι το γνωστό περίβλημα base64· το DER είναι το δυαδικό αντίστοιχό του· το PKCS12 συνδυάζει ένα πιστοποιητικό με το κλειδί και την αλυσίδα του. Ένα αρχείο αλυσίδας πιστοποιητικών είναι άλλο ένα δοχείο και συνήθως δεν περιέχει καθόλου ιδιωτικό κλειδί. Καμία από αυτές τις ετικέτες δεν λέει αν το υλικό μέσα είναι RSA ή ECDSA.

Διαβάστε τον αλγόριθμο από το ίδιο το αντικείμενο. Το εμπορικό όνομα ενός παρόχου ή μια επέκταση αρχείου δεν είναι απόδειξη, γιατί ο ίδιος εκδότης μπορεί να δίνει διαφορετικούς τύπους κλειδιών.

Συγκρίνετε τα δημόσια κλειδιά πριν κατηγορήσετε τον φορτωτή

Ένα πιστοποιητικό που φορτώνεται αποδεικνύει ότι το πιστοποιητικό αναλύθηκε, όχι ότι το ιδιωτικό του κλειδί υπάρχει ή είναι χρησιμοποιήσιμο. Παράγετε το δημόσιο κλειδί από το πιστοποιητικό και από το προτεινόμενο ιδιωτικό κλειδί και μετά συγκρίνετε τις δύο συνόψεις. Αν οποιαδήποτε εξαγωγή αποτύχει, σταματήστε εκεί, γιατί η σύνοψη κενού αποτελέσματος δεν αποδεικνύει τίποτα. Οι ταιριαστές συνόψεις αποδεικνύουν ότι το ζεύγος ανήκει μαζί, και τίποτα περισσότερο για το αν το πιστοποιητικό ταιριάζει στη δουλειά.

openssl x509 -in server.crt -pubkey -noout |
    openssl pkey -pubin -outform DER |
    openssl dgst -sha256

openssl pkey -in server-key.pem -pubout -outform DER |
    openssl dgst -sha256

Η δεύτερη εντολή αγγίζει ιδιωτικό υλικό στον υπολογιστή σας αλλά εκπέμπει μόνο το δημόσιο μισό. Κρατήστε το έτσι, και μην επικολλάτε ποτέ ιδιωτικό κλειδί σε ένα ticket. Αν το κλειδί είναι κρυπτογραφημένο, αφήστε το υποστηριζόμενο εργαλείο να ζητήσει τη φράση πρόσβασης αντί να τη βάζετε σε γραμμή εντολών όπου η λίστα διεργασιών μπορεί να την εκθέσει.

Παλιά ipsec.secrets ή διαπιστευτήρια swanctl

Το strongSwan έχει δύο συνηθισμένες διαδρομές διαπιστευτηρίων. Η παλιά στοίβα starter διαβάζει εγγραφές ειδικές για τον τύπο από ipsec.secrets, και κάθε εγγραφή πρέπει να ονομάζει τον σωστό τύπο για το υλικό. Η στοίβα swanctl και vici φορτώνει κλειδιά από τον δικό της κατάλογο διαπιστευτηρίων μέσω της δικής της διαμόρφωσης. Η επεξεργασία του αρχείου που δεν διαβάζει το εκτελούμενο backend δεν αλλάζει τίποτα.

: ECDSA "/etc/ipsec.d/private/server-key.pem"

Βρείτε ποιο backend εκτελείται πραγματικά και μετά τοποθετήστε το κλειδί εκεί που κοιτά αυτό το backend. παλιό εγχειρίδιο strongSwan 5.9 ορίζει τις εγγραφές μυστικών ειδικές για τον τύπο, και δεν είναι τεκμηρίωση swanctl. Η ανάμειξη των δύο παράγει έναν daemon που αγνοεί ένα αρχείο που ο διαχειριστής θεωρεί έγκυρο. Μια επαναφόρτωση που δεν αναφέρει σφάλμα σημαίνει μόνο ότι η διαμόρφωση αναλύθηκε.

Διαβάστε το συμβάν φόρτωσης και το αποτέλεσμα πιστοποίησης

Μετά από μια ελεγχόμενη επαναφόρτωση, διαβάστε την ίδια την έξοδο φόρτωσης του daemon για το συγκεκριμένο κλειδί. Ένα πιστοποιητικό που αναφέρεται σε dump κατάστασης δεν δείχνει ότι το ιδιωτικό κλειδί αντιστοιχίστηκε με αυτό.

Αν ένας client αποτυγχάνει ακόμη, κρατήστε το συμβάν του server και το σφάλμα του client χωριστά. Η επικύρωση αλυσίδας, η αντιστοίχιση ταυτότητας και η συμβατότητα μεθόδων είναι μεταγενέστερα ερωτήματα με δικά τους στοιχεία. Καταγράψτε το αποτέλεσμα με την ακριβή διαδρομή κλειδιού και τη σύνοψη που συγκρίνατε, γιατί αλλιώς η επόμενη βάρδια θα επαναλάβει την ίδια επαναφόρτωση. Η αντικατάσταση του CA δεν είναι η πρώτη αντίδραση σε ασυμφωνία φορτωτή.

Σχετικά άρθρα