Convertir .pfx a .cer

155

¿Es posible convertir un archivo .pfx (Intercambio de información personal) en un archivo .cer (Certificado de seguridad)? A menos que me equivoque, ¿no está incrustado un .cer de alguna manera dentro de un .pfx? Me gustaría alguna forma de extraerlo, si es posible.

Mark Carpenter
fuente

Respuestas:

90

Creo que la manera simple es importarlo y luego exportarlo, usando el administrador de certificados en la Consola de administración de Windows.

Andrew Cox
fuente
55
Traté de hacer esto, pero cuando selecciono exportar clave privada, obtengo la opción .cer (codificación DER) desactivada. y la utilidad midletsigner necesitan provatekey de todos modos ..
Jigar Joshi
3
Debe marcar la casilla cuando la importe, que dice "marcar esta clave como exportable"
Andrew Cox
11
Cómo llegar al Administrador de certificados en Windows: msdn.microsoft.com/en-us/library/ms788967.aspx
James White
12
La forma más fácil de abrir el administrador de certificados de Windows es escribir "certmgr.msc" en el símbolo del sistema.
Jan Derk
@ AndrewCox, sin embargo, ¿hay alguna diferencia detrás de escena entre marcarlo como exportable y no marcarlo como tal? ¿O es simplemente una opción de interfaz de usuario?
Pacerier
212

Los archivos PFX son paquetes estándar de sintaxis de intercambio de información personal PKCS # 12 . Pueden incluir un número arbitrario de claves privadas con los certificados X.509 que lo acompañan y una cadena de autoridad de certificación (establecer certificados).

Si desea extraer certificados de cliente, puede usar la herramienta PKCS12 de OpenSSL .

openssl pkcs12 -in input.pfx -out mycerts.crt -nokeys -clcerts

El comando anterior generará los certificados en formato PEM. La extensión de archivo ".crt" es manejada por macOS y Window.

Usted menciona la extensión ".cer" en la pregunta que se usa convencionalmente para los archivos codificados DER. Una codificación binaria. Pruebe primero el archivo ".crt" y, si no se acepta, es fácil convertir PEM a DER:

openssl x509 -inform pem -in mycerts.crt -outform der -out mycerts.cer
Berk D. Demir
fuente
9
+1 para explicar qué es el archivo además de proporcionar los comandos.
Joshua Drake
"Error de verificación de Mac: ¿contraseña no válida?" cuando lo probé No conozco ninguna contraseña, solo tengo el archivo provisto por mi proveedor.
Brian Knoblauch
1
Parece que dejar caer "-nokeys" funciona cuando intenta convertir un certificado con sus claves privadas, digamos para usar con Fiddler
Gert van den Berg
@Berk, además de OpenSSL, ¿tiene Windows cmd alguna forma de hacerlo?
Pacerier
45

Si está trabajando en PowerShell, puede usar algo como lo siguiente, dado un archivo pfx InputBundle.pfx , para producir un archivo de certificado codificado DER (binario) OutputCert.der :

Get-PfxCertificate -FilePath InputBundle.pfx | 
Export-Certificate -FilePath OutputCert.der -Type CERT

Nueva línea agregada para mayor claridad, pero por supuesto puede tener todo esto en una sola línea.

Si necesita el certificado en formato PEM codificado ASCII / Base64, puede tomar medidas adicionales para hacerlo como se documenta en otro lugar, como aquí: /superuser/351548/windows-integrated-utility-to-convert -der-to-pem

Si necesita exportar a un formato diferente al codificado DER, puede cambiar el -Typeparámetro para Export-Certificate para usar los tipos compatibles con .NET, como se ve en help Export-Certificate -Detailed:

-Type <CertType>
    Specifies the type of output file for the certificate export as follows. 
     -- SST: A Microsoft serialized certificate store (.sst) file format which can contain one or more certificates. This is the default value for multiple certificates. 
     -- CERT: A .cer file format which contains a single DER-encoded certificate. This is the default value for one certificate. 
     -- P7B: A PKCS#7 file format which can contain one or more certificates.
Ian Gallagher
fuente
Sin embargo, Export-Certificate solo está disponible para algunas versiones como Win 8.1 y Server 2012 R2. Si estás en otra versión como Win 7, ¡entonces no hay suerte!
Deep-B
1
Debería estar presente en Server 2012 y Windows 8.0 ( technet.microsoft.com/en-us/library/hh848628(v=wps.620).aspx ), ¡pero un buen punto sobre Windows 7 y tal!
Ian Gallagher
@IanGallagher, ¿Cómo se compara esto con la opción de OpenSSL?
Pacerier
¡Esto es mucho más conveniente si no quieres instalar cosas de OpenSSL!
Leonardo Herrera
25

Quería agregar un método que creo que era el más simple de todos.

  1. Simplemente haga clic derecho en el archivo pfx, haga clic en "Instalar", siga el asistente y agréguelo a una tienda (agregué a la tienda Personal).

  2. En el menú de inicio, escriba certmgr.msc y vaya al programa CertManager.

  3. Encuentre su certificado pfx (las pestañas en la parte superior son las diversas tiendas), haga clic en el botón de exportación y siga el asistente (hay una opción para exportar como .CER)

Esencialmente hace lo mismo que la respuesta de Andrew, pero evita usar la Consola de administración de Windows (va directamente a la importación / exportación).

reyCachorro
fuente
No mucho más rápido ya que todavía tendría que abrir certmgr.msc para exportarlo ...
Pacerier
0
openssl rsa -in f.pem -inform PEM -out f.der -outform DER
Giacomo1968
fuente