Extraer .CRT, .PEM y .KEY de un certificado .PFX con OpenSSL
Las extensiones de archivo .PFX son usadas para certificados en formato PKCS#12. En un mismo archivo se guarda el certificado, el certificado intermedio de la Autoridad Certificadora y la clave privada para el uso del certificado.
Por ello, se usa comúnmente para almacenar y transferir los ficheros agrupados en un único fichero protegido por una contraseña. A raíz de este, podemos convertir un certificado .pfx a .crt, .key y .pem, o mejor dicho, podemos extraer de un certificado .pfx el fichero .crt, el fichero .key o el fichero .pem.
También existen conversores SSL online que realizan este trabajo, pero no es ni mucho menos lo recomendable confiar en herramientas web externas. Para realizar este proceso de convertir un PFX a archivos separados tan solo se necesita OpenSSL y la contraseña que protege el .pfx.
Extraer .CRT de un certificado .PFX
Para convertir de .pfx a .crt y obtener el certificado en ese formato usamos el siguiente comando de OpenSSL:
openssl pkcs12 -in CERTIFICADOEN.pfx -clcerts -nokeys -out CERTIFICADOEN.crt
Extraer .PEM de un certificado .PFX
Con el siguiente comando de OpenSSL podemos extraer el .PEM de un fichero .PFX.
openssl pkcs12 -in CERTIFICADOEN.pfx -out FICHERO.pem -nodes
El formato PEM puede contener clave pública, clave privada y certificado raíz, por lo que su estructura final puede ser algo parecida a esta e incluso puede contener más certificados:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Bag Attributes localKeyID: 9D C8 95 A5 99 12 3D 29 90 DD B7 9B A8 7A 71 39 9B 4D FA 9C subject=CN = *.dominio.com issuer=C = US, O = DigiCert Inc, OU = www.digicert.com, CN = GeoTrust TLS RSA CA G1 -----BEGIN CERTIFICATE----- MIIGGDCCBQCgAwIBAgIQD6AYgMwf87axfCbzYsGw3zANBgkqhkiG9w0BAQsFADBg (...) XSq2YPnt++jKz328fqgeKipx5deKCFQTWPxhYA== -----END CERTIFICATE----- Bag Attributes localKeyID: 9D C8 95 A5 99 12 3D 29 90 DD B7 9B A8 7A 71 39 9B 4D FA 9C Key Attributes: <No Attributes> -----BEGIN PRIVATE KEY----- MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDTTAbzIEZAPsXX (..) wlUqoVXdUZNBQbbv4X6RJfA= -----END PRIVATE KEY----- |
Extraer la clave privada .KEY de un certificado .PFX
Por último, para extraer de un .PFX la .KEY, podemos hacerlo con la ejecución de este comando:
openssl pkcs12 -in CERTIFICADOEN.pfx -nocerts -out PRIVADA.key
En este caso, la contraseña puede ser pedida más de una vez.
En definitiva, se trata de una manera muy fácil de almacenar y transferir certificados de manera segura. A su vez, mediante este sencillo proceso, extraer los ficheros .crt. .pem o .key necesarios para realizar otras tareas. Por último, recuerda comprobar los permisos que otorgas a estos ficheros en destino, para evitar cualquier problema con ellos.