Convertir certificados .pem, .crt, .key o .cer a .pfx para Windows
En muchos entornos, especialmente cuando se trabaja con servidores Linux o servicios web, los certificados SSL suelen generarse en formato PEM (.pem, .crt, .cer, .key). Sin embargo, en sistemas Windows o aplicaciones que usan el almacén de certificados (como IIS, Exchange o herramientas administrativas), se necesita el formato PFX (.pfx o .p12). Este formato es un contenedor que incluye tanto el certificado público como su clave privada, e incluso la cadena de autoridad si se desea.
El formato PFX (o PKCS#12) es totalmente compatible con Windows y permite importar certificados fácilmente mediante el asistente gráfico o la línea de comandos. Convertir un certificado de PEM a PFX es un proceso directo con OpenSSL, siempre que se disponga de los archivos necesarios.
Archivos requeridos
Para realizar la conversión correctamente es necesario tener:
- La clave privada del certificado, normalmente con extensión
.key. - El certificado público emitido por la autoridad, con extensión
.crt,.cero.pem. - (Opcional) El certificado de la CA raíz o intermedia, para incluir la cadena completa de confianza.
Ejemplo práctico de conversión
Supongamos que tenemos los siguientes archivos:
cert.key→ clave privada del servidor.cert.crt→ certificado público emitido.ca.pem→ certificado de la autoridad (CA) que lo firmó.
El siguiente comando generará el archivo certificado.pfx combinando todos los elementos en un único contenedor compatible con Windows.
openssl pkcs12 -export -out certificado.pfx -inkey cert.key -in cert.crt -certfile ca.pem
Durante la ejecución, OpenSSL solicitará una contraseña. Esta contraseña protegerá el archivo .pfx y será necesaria al importarlo en Windows. Es importante no dejarla vacía si se va a usar en entornos productivos.
Si el certificado no requiere incluir la cadena de confianza (por ejemplo, para pruebas locales), se puede omitir la parte de -certfile ca.pem, aunque lo más recomendable es siempre incluirla para garantizar la validación completa del certificado.
openssl pkcs12 -export -out certificado.pfx -inkey cert.key -in cert.crt
Importar el certificado PFX en Windows
Una vez generado el archivo .pfx, se puede importar fácilmente al almacén de certificados de Windows. Existen dos formas principales: mediante la interfaz gráfica o con PowerShell.
Para hacerlo desde la línea de comandos, abre PowerShell con privilegios de administrador y ejecuta:
Import-PfxCertificate -FilePath "C:\ruta\certificado.pfx" -CertStoreLocation Cert:\LocalMachine\My
Este comando importará el certificado al almacén “Personal” (My) del equipo local. Si se desea importarlo solo para el usuario actual, se puede usar:
Import-PfxCertificate -FilePath "C:\ruta\certificado.pfx" -CertStoreLocation Cert:\CurrentUser\My
Windows pedirá la contraseña del archivo .pfx y lo almacenará de forma segura en el sistema.
Verificar la instalación
Para comprobar que el certificado se importó correctamente, se puede usar la consola de administración de certificados:
- Abrir el menú de inicio y ejecutar
certlm.msc(para el sistema) ocertmgr.msc(para el usuario). - Navegar a Certificados → Personal → Certificados.
- Confirmar que el nuevo certificado aparece en la lista y que la clave privada está asociada (se muestra un icono de llave).
Si el certificado se va a usar en IIS, basta con abrir el administrador del servidor, seleccionar el sitio web deseado, ir a “Enlaces…” y asignar el nuevo certificado desde el menú desplegable.
Exportar nuevamente a otros formatos
En cualquier momento se puede volver a extraer el contenido del .pfx con OpenSSL para recuperar los archivos individuales:
openssl pkcs12 -in certificado.pfx -out cert.pem -clcerts -nokeys
openssl pkcs12 -in certificado.pfx -out key.pem -nocerts -nodes
El primer comando extrae el certificado público, y el segundo la clave privada. Es importante tener cuidado con los permisos de estos archivos para evitar fugas de seguridad.
Autor de la documentación: AI