Εξαγωγή των πιστοποιητικών από ένα P12 χωρίς το ιδιωτικό κλειδί
Ένα πακέτο PKCS12 κρατά κλειδιά και πιστοποιητικά μαζί. Διαβάστε πρώτα τη δομή και μετά επιλέξτε πιστοποιητικά με -nokeys αντί να αφαιρέσετε την προστασία.
Το αίτημα υποστήριξης ρωτά ποιο πιστοποιητικό βρίσκεται μέσα στο πακέτο VPN, και η πρώτη παρόρμηση είναι να εξαγάγουμε τα πάντα και να τα επισυνάψουμε. Ένα αρχείο P12 συσκευάζει πιστοποιητικά και υλικό ιδιωτικού κλειδιού σε ένα κοντέινερ, οπότε η εξαγωγή των πάντων είναι ακριβώς αυτό που δεν πρέπει να στείλετε. Η εντολή που απαντά στην ερώτηση είναι πρόβλημα επιλογής, όχι μετατροπής. Τέσσερις σημαίες αποφασίζουν ποιο μισό του κοντέινερ θα πάρετε, και δύο από αυτές ακούγονται ασφαλέστερες απ' ό,τι είναι.
Ξεκινήστε διαβάζοντας το κοντέινερ αντί να το αδειάσετε.
Τι περιέχει πραγματικά ένα αρχείο PKCS12
Ένα κοντέινερ PKCS12 περιέχει ένα ή περισσότερα πιστοποιητικά, ενδεχομένως ένα ιδιωτικό κλειδί και ένα message authentication code πάνω από τα περιεχόμενα. Τα πιστοποιητικά μπορεί να περιλαμβάνουν το φύλλο πιστοποιητικό της ταυτότητας πελάτη σας και τα ενδιάμεσα που το αλυσιδώνουν σε μια CA. Το κλειδί, όταν υπάρχει, είναι αυτό που κάνει το αρχείο μυστικό και όχι έγγραφο.
Αυτή η διάκριση είναι ο λόγος που υπάρχει το -nokeys και που είναι η σημαία που χρειάζεται αυτή η εργασία.
Διαβάστε το πακέτο χωρίς να γράψετε το κλειδί
Η μορφή επιθεώρησης εκτυπώνει τη δομή και τις λεπτομέρειες των αλγορίθμων και δεν γράφει τίποτα: openssl pkcs12 -in client.p12 -info -noout. Ζητά τον κωδικό εισαγωγής, που είναι το σωστό μέρος για αυτή την τιμή, και σας λέει αν το αρχείο περιέχει καθόλου κλειδί. Χρησιμοποιήστε το -passin env:PKCS12_PASS όταν ο κωδικός δεν μπορεί να πληκτρολογηθεί, γιατί ένας κωδικός μέσα σε εντολή shell είναι κωδικός στη λίστα διεργασιών. Αυτό το βήμα δεν εξάγει τίποτα, και αυτό είναι όλο το νόημα.
Διαβάστε την έξοδο για τρία πράγματα: πόσα πιστοποιητικά, αν υπάρχει κλειδί και ποιοι αλγόριθμοι το προστατεύουν.
Χρησιμοποιήστε το -nokeys και μην το μπερδέψετε με το -nocerts
Το -nokeys αποκλείει τα ιδιωτικά κλειδιά και αφήνει τα πιστοποιητικά. Το -clcerts περιορίζει αυτό σε πιστοποιητικά πελάτη, το -cacerts το περιορίζει σε πιστοποιητικά CA, και τα δύο αυτά είναι φίλτρα και όχι εναλλακτικές. Το -nocerts διαβάζεται σαν η ασφαλής γραφή της ίδιας ιδέας και σημαίνει το αντίθετο: κανένα πιστοποιητικό, που αφήνει μόνο κλειδιά. Το να το ανακατέψετε σε εξαγωγή πιστοποιητικών είναι ο τρόπος με τον οποίο ένα ιδιωτικό κλειδί καταλήγει στον δίσκο.
Η μορφή δύο γραμμών που παράγει ένα αρχείο πιστοποιητικών και ένα αρχείο CA, και τίποτα άλλο, είναι:
openssl pkcs12 -in client.p12 -nokeys -clcerts -out client-certificates.pem
openssl pkcs12 -in client.p12 -nokeys -cacerts -out ca-certificates.pemΤα παλαιότερα πακέτα χρειάζονται το -legacy στο OpenSSL 3 για να διαβάσουν την παλαιότερη κρυπτογράφησή τους, και αυτή η σημαία αλλάζει τι δέχεται ο αναλυτής, όχι τι εκπέμπει. Αν η ανάλυση αποτύχει με σφάλμα για μη υποστηριζόμενο αλγόριθμο, η προσθήκη του -legacy είναι η σωστή πρώτη κίνηση και η παράλειψη του ελέγχου MAC δεν είναι.
Ελέγξτε την έξοδο, όχι τον κωδικό εξόδου
Μια κατάσταση εξόδου μηδέν λέει ότι η εντολή εκτελέστηκε, όχι ότι το αρχείο περιέχει αυτό που περιμένετε. Μετρήστε τα πιστοποιητικά στην έξοδο και διαβάστε το subject και τις ημερομηνίες: openssl x509 -in client-certificates.pem -noout -subject -dates -fingerprint. Συγκρίνετε το αποτύπωμα με αυτό που περιμένει η ομάδα υποστήριξης, γιατί ένα πακέτο με δύο πιστοποιητικά πελάτη παράγει αρχείο με δύο μπλοκ και τα περισσότερα εργαλεία διαβάζουν μόνο το πρώτο. Σκοπός, εμπιστοσύνη και αντιστοίχιση κλειδιού είναι και πάλι ξεχωριστές δοκιμές.
Ένα πιστοποιητικό που αναλύεται είναι ένα πιστοποιητικό που αναλύεται. Δεν είναι πιστοποιητικό που δέχεται το VPN.
Αποφασίστε αν χρειάζεστε καθόλου αρχεία
Αν ο πελάτης που το λαμβάνει εισάγει απευθείας PKCS12, η αποστολή του αρχικού πακέτου μέσω εγκεκριμένου καναλιού με τον κωδικό χωριστά είναι απλούστερη και διατηρεί την προστασία. Η εξαγωγή είναι για επιθεώρηση, για πελάτη που χρειάζεται PEM ή για υπόθεση υποστήριξης που ζήτησε συγκεκριμένο τεχνούργημα. Κάθε εξαγωγή αφαιρεί ένα επίπεδο και θα πρέπει να έχει λόγο.
Τα δημόσια πιστοποιητικά δεν περιέχουν το ιδιωτικό κλειδί, αλλά περιέχουν ονόματα και στοιχεία οργανισμού. Μοιραστείτε τα πεδία που ζήτησε το αίτημα αντί για το αρχείο, εκτός αν ζητήθηκε το ίδιο το αρχείο.