Exportar certificados y clave privada de un archivo PKCS # 12 con OpenSSL

Nota: Este artículo no se aplica a los certificados de firma de documentos y de firma de códigos de SSL.com. Las claves privadas de este tipo de certificados no se pueden exportar y no se pueden generar como archivos .pfx. Los certificados de firma de código y de firma de documentos de SSL.com y sus claves privadas solo se pueden generar y almacenar en el Entorno de firma en la nube eSigner, Yubikey dispositivo o un dispositivo compatible HSM en la nube.

Este tutorial lo guiará a través de la extracción de información de un archivo PKCS # 12 con OpenSSL. PKCS # 12 (también conocido como PKCS12 o PFX) es un formato binario para almacenar una cadena de certificados y una clave privada en un único archivo cifrado. Los archivos PKCS # 12 se usan comúnmente para importar y exportar certificados y claves privadas en computadoras Windows y macOS, y generalmente tienen las extensiones de nombre de archivo .p12 or .pfx.

Para obtener instrucciones más útiles y las últimas noticias sobre seguridad cibernética, suscríbase al boletín de SSL.com aquí:

¿Qué es OpenSSL?
OpenSSL es un juego de herramientas de línea de comandos de código abierto muy útil para trabajar con X.509 certificados, solicitudes de firma de certificados (CSRs) y claves criptográficas. Si está utilizando una variante de UNIX como Linux o macOS, es probable que OpenSSL ya esté instalado en su computadora. Si desea utilizar OpenSSL en Windows, puede habilitar Subsistema Linux de Windows 10 o instalar Cygwin. También puedes fácilmente Para crear un archivo PKCS # 12 con openSSL.

SSL.com proporciona una amplia variedad de SSL /TLS certificados de servidor para sitios web HTTPS.

COMPARAR SSL /TLS CERTIFICADOS

Video

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

En todos los ejemplos que se muestran a continuación, sustituya los nombres de los archivos con los que realmente está trabajando INFILE.p12, OUTFILE.crty OUTFILE.key.

Ver información PKCS # 12 en pantalla

Para volcar toda la información en un archivo PKCS # 12 a la pantalla en Formato PEM, use este comando:

openssl pkcs12 -info -in INFILE.p12 -nodos

A continuación, se le pedirá la contraseña del archivo PKCS # 12:

Ingrese la contraseña de importación:

Escriba la contraseña ingresada al crear el archivo PKCS # 12 y presione enter. OpenSSL mostrará en la pantalla todos los certificados y claves privadas del archivo:

Atributos de la bolsa localKeyID: 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 = Houston / O = SSL Corp / CN = SSL.com certificado de cliente Intermedio CA RSA R1 ----- BEGIN CERTIFICATE ----- MIIF1DCCA7ygAwIBAgIQcOrAJCMayJsZBKJsyz / aQDANBgkqhkiG9w0BAQsFADB + MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hvdXN0b24x ETAPBgNVBAoMCFNTTCBDb3JwMTowOAYDVQQDDDFTU0wuY29tIENsaWVudCBDZXJ0 ... bwK6ABAZUq6QcvhD0LYsXya + ncDCR6wxb9E0DWd4ATQMzxGTu / yE3kT + 9Ef6IY + n armh3HZUfan2Hb64YD0tjLMca / PC + sKAZu28gB / 3HQRHIFugvh6RO3bIoorl0jUg 1Ml2R83 ----Sf0-Ufc6

Cifrar clave privada

Si desea cifrar la clave privada y protegerla con una contraseña antes de la salida, simplemente omita el -nodes bandera del comando:

openssl pkcs12 -info -en INFILE.p12

En este caso, se le pedirá que ingrese y verifique una nueva contraseña después de que OpenSSL emita los certificados, y la clave privada se cifrará (tenga en cuenta que el texto de la clave comienza con -----BEGIN ENCRYPTED PRIVATE KEY-----):

Introduzca PEM frase de: Verificación - Introduzca PEM frase de: ----- BEGIN clave cifrada PRIVADO ----- MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIGwhJIMXRiLQCAggA MBQGCCqGSIb3DQMHBAiXdeymTYuedgSCBMjwGg78PsqiNJLfpDFbMxL98u3tK9Cs ... SGVCCBj5vBpSbBXAGbOv74h4satKmAMgGc8SgU06geS9gFgt / wLwehMJ / H4BSmex 4S / 2tYzZrDBJkfH9JpggubYRTgwfAGY2BkX03dK2sqfu + QVTVTKMj2VI0sKcFfLZ BDW = ----- END ENCRYPTED LLAVE PRIVADA-----

Extraer solo certificados o clave privada

Si solo desea generar la clave privada, agregue -nocerts al comando:

openssl pkcs12 -info -in INFILE.p12 -nodos -nocerts

Si solo necesita los certificados, use -nokeys (y dado que no nos preocupa la clave privada, también podemos omitir con seguridad -nodes):

openssl pkcs12 -info -in INFILE.p12 -nokeys

Guardar certificados y claves privadas en archivos

Puede exportar los certificados y la clave privada de un archivo PKCS # 12 y guardarlos en formato PEM en un nuevo archivo especificando un nombre de archivo de salida:

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

Nuevamente, se le pedirá la contraseña del archivo PKCS # 12. Como antes, puede cifrar la clave privada eliminando el -nodes marca desde el comando y / o agregar -nocerts or -nokeys para generar solo la clave privada o los certificados. Entonces, para generar un archivo de clave privada, podemos usar este comando:

openssl pkcs12 -in INFILE.p12 -out OUTFILE.key -nodes -nocerts

Y para crear un archivo que incluya solo los certificados, use esto:

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

Convertir clave privada al formato PKCS # 1

Los ejemplos anteriores generan la clave privada en el valor predeterminado de OpenSSL PKCS # 8 formato. Si sabes que necesitas PKCS # 1 en su lugar, puede canalizar la salida de la utilidad PKCS # 12 de OpenSSL a su utilidad RSA o EC, según el tipo de clave. Los dos comandos siguientes generarán un archivo de clave en formato PKCS # 1:

RSA

openssl pkcs12 -in INFILE.p12 -nodes -nocerts | openssl rsa -out OUTFILE.key

ECDSA

openssl pkcs12 -in INFILE.p12 -nodes -nocerts | openssl ec -out OUTFILE.key

Nota: Puede ver la diferencia entre los archivos de clave privada PKCS # 8 y PKCS # 1 mirando la primera línea de texto. Los archivos PKCS # 1 especificarán el algoritmo:
-----BEGIN RSA PRIVATE KEY-----

Los archivos PKCS # 8 no muestran el algoritmo y también pueden estar encriptados:
-----BEGIN PRIVATE KEY-----
or
-----BEGIN ENCRYPTED PRIVATE KEY-----


¡Gracias por elegir SSL.com! Si tiene alguna pregunta, comuníquese con nosotros por correo electrónico a Support@SSL.com, llamada 1-877-SSL-SECURE, o simplemente haga clic en el enlace de chat en la parte inferior derecha de esta página.

Suscríbase al boletín de SSL.com

No te pierdas los nuevos artículos y actualizaciones de SSL.com

Manténgase informado y seguro

SSL.com es líder mundial en ciberseguridad, PKI y certificados digitales. Regístrese para recibir las últimas noticias, consejos y anuncios de productos de la industria de SSL.com.

Nos encantaría recibir tus comentarios

Responda nuestra encuesta y háganos saber lo que piensa sobre su compra reciente.