Todos los artículos de SSL SSL y certificados

Formatos de certificados SSL: PEM, PFX, DER explicados

Los certificados SSL y las claves privadas pueden almacenarse en varios formatos de archivo. El contenido es el mismo — lo que difiere es la codificación y el empaquetado. La mayor confusión surge al necesitar un formato específico para tu servidor.

Comparación de formatos

FormatoExtensiónCodificaciónContieneUsado por
PEM.pem, .crt, .cer, .keyBase64 (texto)Certificado, clave o cadena (uno por archivo)Nginx, Apache, la mayoría de servidores Linux
DER.der, .cerBinarioUn solo certificado o claveJava, algunas aplicaciones Windows
PFX/PKCS#12.pfx, .p12BinarioCertificado + clave + cadena en un solo archivoWindows IIS, Azure, Llavero de macOS

PEM — el formato más común

PEM (Privacy Enhanced Mail) es texto codificado en base64. Puedes abrirlo en un editor de texto:

-----BEGIN CERTIFICATE-----
MIIFYjCCBEqgAwIBAgISA8ht...
(base64 encoded data)
-----END CERTIFICATE-----

Los archivos PEM pueden contener certificados, claves privadas o cadenas de certificados. La cabecera te indica qué contiene:

  • BEGIN CERTIFICATE — un certificado
  • BEGIN PRIVATE KEY — una clave privada (o BEGIN RSA PRIVATE KEY / BEGIN EC PRIVATE KEY)
  • BEGIN CERTIFICATE REQUEST — un CSR

GetHTTPS produce formato PEMprivkey.pem, cert.pem, chain.pem, fullchain.pem.

DER — codificación binaria

DER es la forma binaria de los mismos datos que PEM codifica como texto. No es legible por humanos. Se usa principalmente en aplicaciones Java (keytool) y algunos componentes de Windows.

PFX/PKCS#12 — formato empaquetado

PFX (Personal Information Exchange) empaqueta el certificado, la clave privada y la cadena en un solo archivo protegido por contraseña. Windows IIS, Azure App Service y el Llavero de macOS requieren este formato.

Conversión entre formatos

Todas las conversiones usan OpenSSL:

PEM → PFX

openssl pkcs12 -export \
  -out certificate.pfx \
  -inkey privkey.pem \
  -in cert.pem \
  -certfile chain.pem

Se te pedirá establecer una contraseña de exportación.

PFX → PEM

# Extract certificate
openssl pkcs12 -in certificate.pfx -clcerts -nokeys -out cert.pem

# Extract private key
openssl pkcs12 -in certificate.pfx -nocerts -nodes -out privkey.pem

# Extract chain
openssl pkcs12 -in certificate.pfx -cacerts -nokeys -out chain.pem

PEM → DER

openssl x509 -in cert.pem -outform DER -out cert.der

DER → PEM

openssl x509 -in cert.der -inform DER -outform PEM -out cert.pem

¿Qué formato necesito?

Servidor/PlataformaFormatoArchivos necesarios
NginxPEMfullchain.pem + privkey.pem
ApachePEMcert.pem + chain.pem + privkey.pem
IIS (Windows)PFXcertificate.pfx (convertir desde PEM)
Azure App ServicePFXcertificate.pfx
AWS (ACM)PEMcert.pem + chain.pem + privkey.pem (pegar en la consola)
Java (Tomcat)JKS o PFXConvertir PEM → PFX → JKS con keytool
Node.jsPEMLeer archivos directamente en el código

Cómo identificar el formato de un archivo

¿No estás seguro de qué formato tiene un archivo? Verifica:

# If it starts with "-----BEGIN" — it's PEM (base64 text)
head -1 mystery-file.pem

# If it's binary (garbled text) — it's DER or PFX
file mystery-file.cer
# Output like "data" or "certificate" = DER
# Output like "PKCS12" = PFX

# Inspect a PEM certificate
openssl x509 -in cert.pem -noout -text

# Inspect a DER certificate
openssl x509 -in cert.der -inform DER -noout -text

# Inspect a PFX file
openssl pkcs12 -in cert.pfx -info -nokeys

Confusión común con extensiones de archivo

ExtensiónGeneralmente significaPero podría ser
.pemPEM (base64)Siempre PEM
.crtCertificado PEMDER en Windows
.cerCertificado PEMDER en Windows
.keyClave privada PEMDER (raro)
.pfxPaquete PKCS#12Siempre PFX
.p12Paquete PKCS#12Siempre PFX (igual que .pfx)
.derDER (binario)Siempre DER
.jksJava KeyStoreSiempre JKS

Regla general: Abre el archivo en un editor de texto. Si ves -----BEGIN CERTIFICATE-----, es PEM independientemente de la extensión. Si ves datos binarios ilegibles, es DER o PFX.

Preguntas frecuentes

¿Cuál es la diferencia entre .crt, .cer y .pem?

Todos pueden ser formato PEM. La extensión es una convención de nombres, no un indicador de formato. .crt y .cer se usan comúnmente para archivos de certificado, .pem para cualquier archivo codificado en PEM. En Windows, los archivos .cer a veces están codificados en DER — abre en un editor de texto para verificar.

¿Por qué GetHTTPS me da 4 archivos?

Máxima compatibilidad. GetHTTPS proporciona: privkey.pem (clave privada), cert.pem (solo tu certificado), chain.pem (certificado de la CA intermedia), fullchain.pem (cert + chain combinados). Nginx necesita fullchain.pem; Apache necesita cert.pem + chain.pem separados; IIS necesita PFX (convertir desde PEM).

¿Cómo creo un PFX para Windows/IIS?

Usa el comando OpenSSL de PEM → PFX de arriba. Necesitarás privkey.pem, cert.pem y chain.pem de GetHTTPS. El archivo .pfx resultante se puede importar en IIS, Azure App Service o el Llavero de macOS.

¿Puedo convertir de un formato a otro sin la clave privada?

Puedes convertir el certificado entre PEM y DER sin la clave privada. Pero crear un PFX requiere la clave privada (empaqueta certificado + clave juntos). Si perdiste tu clave privada, necesitas generar un nuevo certificado.

¿Qué formato usa Let’s Encrypt?

Let’s Encrypt (a través de cualquier cliente ACME incluyendo GetHTTPS) produce formato PEM. Si necesitas un formato diferente para tu servidor, convierte usando los comandos OpenSSL de arriba.

Artículos relacionados

Despliegue 2026-05-08
Cómo instalar un certificado SSL en Nginx
Guía paso a paso para instalar un certificado SSL en Nginx. Cubre subida de archivos, configuración completa del bloque server, mejores prácticas TLS, HTTP/2, HSTS, redirección y solución de 6 errores comunes.
Despliegue 2026-05-08
Cómo instalar un certificado SSL en Apache
Guía paso a paso para instalar un certificado SSL en Apache con mod_ssl. Cubre la subida de archivos, configuración de VirtualHost, mejores prácticas TLS, HSTS, redirección HTTP y solución de 5 errores comunes.
SSL y certificados 2026-05-07
¿Qué es un CSR (Solicitud de Firma de Certificado)?
Un CSR es un mensaje enviado a una Autoridad Certificadora para solicitar un certificado SSL. Aprende qué contiene un CSR, cómo se genera y por qué GetHTTPS lo maneja automáticamente.
Obtén un certificado SSL gratuito en tu navegador
Sin instalación, sin cuenta. Tu clave privada nunca sale de tu dispositivo.
Obtener certificado