Convierta un certificado CERT / PEM en un certificado PFX

185

He visto un par de preguntas sobre cómo convertir un PFX a un archivo cert, pero necesito ir hacia otro lado.

Tengo dos archivos:

bob_cert.cert

bob_key.pem

Me gustaría convertirlos a un solo archivo .pfx. ¿Hay alguna herramienta que haga esto?

bendewey
fuente
16
serverfault.com/a/9717/3202 es una gran explicación sobre los formatos de archivo cert, solo para su información
Rory

Respuestas:

350
openssl pkcs12 -inkey bob_key.pem -in bob_cert.cert -export -out bob_pfx.pfx
Francisco
fuente
77
¿Cómo puedo lograr lo mismo mediante programación en C #?
pankajt
2
¿Podría señalarme en la dirección de estos ejemplos? Parece que no puedo encontrar nada.
Nick
10
La versión de Windows de OpenSSL está disponible en slproweb.com/products/Win32OpenSSL.html . Solo lo probé y funcionó correctamente para este propósito.
BrianFinkel
2
Gran lista de comandos comunes de OpenSSL en sslshopper.com/article-most-common-openssl-commands.html
Rory
44
Un par de adiciones: -name "friendly name"establece el nombre (que aparecería en la lista de certificados en Windows, por ejemplo) y -certfile cacert.pemse puede usar para agregar los certificados de CA y producir el .pfxarchivo con toda la cadena.
pvgoran
22

Aquí se explica cómo hacer esto en Windows sin herramientas de terceros:

  1. Importar certificado a la tienda de certificados. En el Explorador de Windows, seleccione "Instalar certificado" en el menú contextual. ingrese la descripción de la imagen aquí Siga el asistente y acepte las opciones predeterminadas "Usuario local" y "Automáticamente".

  2. Encuentra tu certificado en la tienda de certificados. En Windows 10, ejecute la MMC "Administrar certificados de usuario". En Windows 2013, la MMC se llama "Certificados". En Windows 10 de forma predeterminada, su certificado debe estar en el nodo "Personal" -> "Certificados".

  3. Certificado de exportación. En el menú contextual, seleccione el menú "Exportar ...": ingrese la descripción de la imagen aquí

    Seleccione "Sí, exportar la clave privada": ingrese la descripción de la imagen aquí

    Verá que la opción .PFX está habilitada en este caso: ingrese la descripción de la imagen aquí

    Especifique la contraseña para la clave privada.

IT Hit WebDAV
fuente
11
En el paso 2, mi certificado no es "Personal" -> "Certificados". Aparece en "Otras personas" -> "Certificados", y al exportar, el "Intercambio de información personal (PFX)" aparece deshabilitado. ¿Sabes cómo habilitarlo?
Gabrielizalo
Lo arreglé con el convertidor de certificados portátil de DigiCert: digicert.com/util/…
Gabrielizalo
13
No puede importar un PEM.
Ross Presser
1
Primero debe cambiar el nombre de .pem a .cer para que Windows reconozca el archivo como un archivo de certificado / clave privada. Ambas extensiones de archivo pueden contener cert (s) y / o clave (s) en texto sin formato blindado ASCII o en formato binario codificado Base64 / DER, pero puede usar archivos cer con utilidades integradas de Windows.
Mastacheata
9
La pregunta de OP era cómo importarlo cuando la clave privada no está incluida en el archivo del certificado, pero tienes dos archivos: un CRT y un PEM (que contiene la clave privada). Esta respuesta no funciona en ese caso.
masi
16

Creé el archivo .pfx a partir de archivos .key y .pem.

Me gusta esto openssl pkcs12 -inkey rootCA.key -in rootCA.pem -export -out rootCA.pfx

Esa no es la respuesta directa, pero aún así puede ayudar a alguien más.

Siim Nelis
fuente
5

Si tiene un certificado autofirmado generado por makecert.exeuna máquina con Windows, obtendrá dos archivos: cert.pvky cert.cer. Estos se pueden convertir a un pfx usandopvk2pfx

pvk2pfxse encuentra en la misma ubicación que makecert(por ejemplo, C:\Program Files (x86)\Windows Kits\10\bin\x86o similar)

pvk2pfx -pvk cert.pvk -spc cert.cer -pfx cert.pfx
EBlake
fuente