jedg_logo

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, .cer o .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:

  1. Abrir el menú de inicio y ejecutar certlm.msc (para el sistema) o certmgr.msc (para el usuario).
  2. Navegar a Certificados → Personal → Certificados.
  3. 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