Εξαγωγή πιστοποιητικών και ιδιωτικού κλειδιού από ένα αρχείο PKCS # 12 με OpenSSL

Πώς να εξαγάγετε τα πιστοποιητικά και το ιδιωτικό κλειδί από ένα αρχείο PKCS # 12 (επίσης γνωστό ως PKCS12, PFX, .p12 και .pfx) με το OpenSSL.

Σημείωση: Αυτό το άρθρο δεν ισχύει για τα πιστοποιητικά υπογραφής κώδικα και υπογραφής εγγράφων SSL.com. Τα ιδιωτικά κλειδιά αυτών των τύπων πιστοποιητικών δεν μπορούν να εξαχθούν και δεν μπορούν να δημιουργηθούν ως αρχεία .pfx. Τα πιστοποιητικά υπογραφής κώδικα και υπογραφής εγγράφων SSL.com και τα ιδιωτικά τους κλειδιά μπορούν να δημιουργηθούν και να αποθηκευτούν μόνο στο Περιβάλλον υπογραφής cloud eSigner, μια Γιούμπικυ συσκευή ή μια υποστηριζόμενη Cloud HSM.

Αυτός ο οδηγός θα σας καθοδηγήσει στην εξαγωγή πληροφοριών από ένα αρχείο PKCS # 12 με το OpenSSL. Το PKCS # 12 (επίσης γνωστό ως PKCS12 ή PFX) είναι μια δυαδική μορφή για την αποθήκευση μιας αλυσίδας πιστοποιητικών και ενός ιδιωτικού κλειδιού σε ένα μόνο, κρυπτογραφημένο αρχείο. Τα αρχεία PKCS # 12 χρησιμοποιούνται συνήθως για την εισαγωγή και εξαγωγή πιστοποιητικών και ιδιωτικών κλειδιών σε υπολογιστές Windows και macOS και συνήθως έχουν τις επεκτάσεις ονόματος αρχείου .p12 or .pfx.

Για πιο χρήσιμους τρόπους και τα πιο πρόσφατα νέα για την ασφάλεια στον κυβερνοχώρο, εγγραφείτε στο ενημερωτικό δελτίο του SSL.com εδώ:

Τι είναι το OpenSSL;
Το OpenSSL είναι ένα πολύ χρήσιμο κιτ εργαλείων γραμμής εντολών ανοιχτού κώδικα για εργασία X.509 πιστοποιητικά, αιτήσεις υπογραφής πιστοποιητικών (CSRs) και κρυπτογραφικά κλειδιά. Εάν χρησιμοποιείτε μια παραλλαγή UNIX όπως Linux ή macOS, το OpenSSL πιθανότατα είναι ήδη εγκατεστημένο στον υπολογιστή σας. Εάν θέλετε να χρησιμοποιήσετε το OpenSSL στα Windows, μπορείτε να το ενεργοποιήσετε Υποσύστημα Linux των Windows 10 ή να εγκαταστήσετε Cygwin. Μπορείτε επίσης εύκολα δημιουργία ένα αρχείο PKCS # 12 με openSSL.

Το SSL.com παρέχει μια μεγάλη ποικιλία SSL /TLS πιστοποιητικά διακομιστή για ιστότοπους HTTPS.

ΣΥΓΚΡΙΣΗ SSL /TLS ΠΙΣΤΟΠΟΙΗΤΙΚΑ

Βίντεο

https://www.youtube.com/watch?v=S_imVMFOdhU

Σε όλα τα παραδείγματα που εμφανίζονται παρακάτω, αντικαταστήστε τα ονόματα των αρχείων με τα οποία εργάζεστε INFILE.p12, OUTFILE.crt, να OUTFILE.key.

Προβολή πληροφοριών PKCS # 12 στην οθόνη

Για να απορρίψετε όλες τις πληροφορίες σε ένα αρχείο PKCS # 12 στην οθόνη στο Μορφή PEM, χρησιμοποιήστε αυτήν την εντολή:

openssl pkcs12 -info -in INFILE.p12-κόμβοι

Στη συνέχεια, θα σας ζητηθεί ο κωδικός πρόσβασης του αρχείου PKCS # 12:

Εισαγάγετε τον κωδικό πρόσβασης εισαγωγής:

Πληκτρολογήστε τον κωδικό πρόσβασης που πληκτρολογήσατε κατά τη δημιουργία του αρχείου PKCS # 12 και πατήστε enter. Το OpenSSL θα εμφανίσει τυχόν πιστοποιητικά και ιδιωτικά κλειδιά στο αρχείο στην οθόνη:

Τσάντα χαρακτηριστικά τοπικά KeyID: AC 3E 77 9A 99 62 84 3D 77 CB 44 0D F9 78 57 7C 08 28 05 97 subject = / CN = Aaron Russell/emailAddress=*********@gmail.com issuer = / C = US / ST = Texas / L = Χιούστον / O = SSL Corp / CN = SSL.com Πελάτης Πιστοποιητικό Ενδιάμεσο CA RSA R1 ----- BEGIN CERTIFICATE ----- MIIF1DCCA7ygAwIBAgIQcOrAJCMayJsZBKJsyz / aQDANBgkqhkiG9w0BAQsFADB + MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hvdXN0b24x ETAPBgNVBAoMCFNTTCBDb3JwMTowOAYDVQQDDDFTU0wuY29tIENsaWVudCBDZXJ0 ... bwK6ABAZUq6QcvhD0LYsXya + ncDCR6wxb9E0DWd4ATQMzxGTu / yE3kT + 9Ef6IY + n armh3HZUfan2Hb64YD0tjLMca / PC + sKAZu28gB / 3HQRHIFugvh6RO3bIoorl0jUg 1Ml2r83 ++

Κρυπτογράφηση ιδιωτικού κλειδιού

Εάν θέλετε να κρυπτογραφήσετε το ιδιωτικό κλειδί και να το προστατεύσετε με κωδικό πρόσβασης πριν από την έξοδο, απλώς παραλείψτε το -nodes σημαία από την εντολή:

openssl pkcs12 -info -στο INFILE.p12

Σε αυτήν την περίπτωση, θα σας ζητηθεί να εισαγάγετε και να επαληθεύσετε έναν νέο κωδικό πρόσβασης αφού το OpenSSL εξάγει οποιαδήποτε πιστοποιητικά και το ιδιωτικό κλειδί θα κρυπτογραφηθεί (σημειώστε ότι το κείμενο του κλειδιού ξεκινά με -----BEGIN ENCRYPTED PRIVATE KEY-----):

Εισάγετε ΡΕΜ πέρασμα φράση: Επαλήθευση - Πληκτρολογήστε ΡΕΜ μπάλα φράση: ----- BEGIN κρυπτογραφημένο ιδιωτικό κλειδί της ----- MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIGwhJIMXRiLQCAggA MBQGCCqGSIb3DQMHBAiXdeymTYuedgSCBMjwGg78PsqiNJLfpDFbMxL98u3tK9Cs ... SGVCCBj5vBpSbBXAGbOv74h4satKmAMgGc8SgU06geS9gFgt / wLwehMJ / H4BSmex 4S / 2tYzZrDBJkfH9JpggubYRTgwfAGY2BkX03dK2sqfu + QVTVTKMj2VI0sKcFfLZ bdw = ----- ΤΕΛΟΣ ΚΡΥΠΤΟΓΡΑΦΗΜΕΝΩΝ ΙΔΙΩΤΙΚΟ ΚΛΕΙΔΙ -----

Εξαγωγή μόνο πιστοποιητικών ή ιδιωτικού κλειδιού

Εάν θέλετε να εξάγετε μόνο το ιδιωτικό κλειδί, προσθέστε -nocerts στην εντολή:

openssl pkcs12 -info -στο INFILE.p12 -nodes -nocerts

Εάν χρειάζεστε μόνο τα πιστοποιητικά, χρησιμοποιήστε το -nokeys (και επειδή δεν ασχολούμαστε με το ιδιωτικό κλειδί, μπορούμε επίσης να παραλείψουμε με ασφάλεια -nodes):

openssl pkcs12 -info -στο INFILE.p12 -nokeys

Αποθήκευση πιστοποιητικών και ιδιωτικών κλειδιών σε αρχεία

Μπορείτε να εξαγάγετε τα πιστοποιητικά και το ιδιωτικό κλειδί από ένα αρχείο PKCS # 12 και να τα αποθηκεύσετε σε μορφή PEM σε ένα νέο αρχείο, καθορίζοντας ένα όνομα αρχείου εξόδου:

openssl pkcs12 -in INFILE.p12 -out OUTFILE.crt -nodes

Και πάλι, θα σας ζητηθεί ο κωδικός πρόσβασης του αρχείου PKCS # 12. Όπως και πριν, μπορείτε να κρυπτογραφήσετε το ιδιωτικό κλειδί καταργώντας το -nodes σημαία από την εντολή και / ή προσθήκη -nocerts or -nokeys για έξοδο μόνο του ιδιωτικού κλειδιού ή των πιστοποιητικών. Έτσι, για να δημιουργήσουμε ένα αρχείο ιδιωτικού κλειδιού, μπορούμε να χρησιμοποιήσουμε αυτήν την εντολή:

openssl pkcs12 -σε INFILE.p12 -out OUTFILE.key -nodes -νοσέρες

Και για να δημιουργήσετε ένα αρχείο που περιλαμβάνει μόνο τα πιστοποιητικά, χρησιμοποιήστε αυτό:

openssl pkcs12 -in INFILE.p12 -out OUTFILE.crt -nokeys

Μετατροπή ιδιωτικού κλειδιού σε μορφή PKCS # 1

Τα παραδείγματα πάνω απ 'όλα εμφανίζουν το ιδιωτικό κλειδί στην προεπιλογή του OpenSSL PKCS # 8 μορφή. Εάν γνωρίζετε ότι χρειάζεστε PKCS # 1 Αντ 'αυτού, μπορείτε να διοχετεύσετε την έξοδο του βοηθητικού προγράμματος PKCS # 12 του OpenSSL στο βοηθητικό πρόγραμμα RSA ή EC ανάλογα με τον τύπο κλειδιού. Και οι δύο παρακάτω εντολές θα εμφανίσουν ένα αρχείο κλειδιού σε μορφή PKCS # 1:

RSA

openssl pkcs12 -σε INFILE.p12 -κόμβους -νοσέρες | openssl rsa -out OUTFILE.key

ECDSA

openssl pkcs12 -σε INFILE.p12 -κόμβους -νοσέρες | openssl ec -out OUTFILE.key

Σημείωση: Μπορείτε να πείτε τη διαφορά μεταξύ των αρχείων ιδιωτικού κλειδιού PKCS # 8 και PKCS # 1 κοιτάζοντας την πρώτη γραμμή κειμένου. Τα αρχεία PKCS # 1 θα καθορίσουν τον αλγόριθμο:
-----BEGIN RSA PRIVATE KEY-----

Τα αρχεία PKCS # 8 δεν εμφανίζουν τον αλγόριθμο και ενδέχεται επίσης να είναι κρυπτογραφημένα:
-----BEGIN PRIVATE KEY-----
or
-----BEGIN ENCRYPTED PRIVATE KEY-----


Σας ευχαριστούμε που επιλέξατε το SSL.com! Εάν έχετε απορίες, επικοινωνήστε μαζί μας μέσω email στο Support@SSL.com, κλήση 1-877-SSL-SECUREή απλώς κάντε κλικ στο σύνδεσμο συνομιλίας στην κάτω δεξιά γωνία αυτής της σελίδας.

Μείνετε ενημερωμένοι και ασφαλείς

SSL.com είναι παγκόσμιος ηγέτης στον τομέα της κυβερνοασφάλειας, PKI και ψηφιακά πιστοποιητικά. Εγγραφείτε για να λαμβάνετε τα πιο πρόσφατα νέα του κλάδου, συμβουλές και ανακοινώσεις προϊόντων από SSL.com.

Θα θέλαμε τα σχόλιά σας

Συμμετάσχετε στην έρευνά μας και πείτε μας τις σκέψεις σας για την πρόσφατη αγορά σας.