Convertir PFX a PEM (y al revés)

Windows quiere PFX, nginx quiere PEM, Java quiere PKCS#12. Aquí tienes cómo pasar de un formato a otro y qué trampas trajo OpenSSL 3.

Los formatos

Suelta el archivo PFX en el conversor de certificados e introduce la contraseña. Después puedes descargar certificado, cadena y clave por separado o en un bundle. En sentido contrario, el conversor toma certificado y clave en PEM y crea un PFX, completando automáticamente los intermedios que falten. Todo ocurre en el navegador.

PFX → PEM con OpenSSL

# todo en un archivo (clave sin cifrar)
openssl pkcs12 -in archivo.pfx -out todo.pem -nodes

# solo el certificado del servidor
openssl pkcs12 -in archivo.pfx -clcerts -nokeys -out server.crt

# solo los intermedios
openssl pkcs12 -in archivo.pfx -cacerts -nokeys -out chain.crt

# solo la clave privada
openssl pkcs12 -in archivo.pfx -nocerts -nodes -out server.key

Error «unsupported» con OpenSSL 3

error:0308010C:digital envelope routines::unsupported

Los PFX antiguos están cifrados con RC2 o 3DES. OpenSSL 3 solo carga estos algoritmos en modo legacy. La solución es la opción -legacy:

openssl pkcs12 -legacy -in antiguo.pfx -out todo.pem -nodes

PEM → PFX con OpenSSL

openssl pkcs12 -export -out server.pfx \
  -inkey server.key -in server.crt -certfile chain.crt

Windows dice que la contraseña es incorrecta

OpenSSL 3 cifra los PFX con AES-256 por defecto. Windows Server 2016 y versiones anteriores no pueden abrirlos y avisan de una contraseña incorrecta («The password you entered is incorrect») aunque sea correcta. Los archivos creados con 3DES funcionan en todas partes:

openssl pkcs12 -export -out server.pfx -inkey server.key -in server.crt -certfile chain.crt \
  -keypbe PBE-SHA1-3DES -certpbe PBE-SHA1-3DES -macalg sha1

El conversor de certificados crea los PFX directamente con 3DES y lee tanto archivos AES como RC2 antiguos.

¿Qué formato para qué servidor?

FAQ

He olvidado la contraseña del PFX. ¿Y ahora?

Un PFX no se puede abrir sin contraseña. Si el certificado sigue instalado en un servidor Windows y la clave es exportable, vuelve a exportarlo allí con una contraseña nueva. Si no, solo queda la reemisión.

¿Por qué faltan los intermedios tras la conversión?

Algunos PFX solo contienen el certificado del servidor. El conversor descarga automáticamente los intermedios que faltan mediante la entrada AIA del certificado.

¿.cer es lo mismo que .crt?

Ambas son solo extensiones para certificados. El contenido puede ser PEM (texto) o DER (binario). Abre el archivo en un editor de texto: si empieza por -----BEGIN CERTIFICATE-----, es PEM.