Guía completa de extensiones de archivos de certificados y claves: PEM, CRT, DER, PFX y más
Si alguna vez ha configurado un servidor web (como Nginx o Apache), gestionado claves SSH o trabajado con firmas digitales, es probable que se haya encontrado con una confusa variedad de extensiones de archivo: .pem, .crt, .cer, .der, .p12, .pfx, .key, .csr, y más.
¿Son todos iguales? ¿Se pueden simplemente renombrar? Esta guía desmitificará estas extensiones, explicará qué hay dentro de ellas y le mostrará cómo trabajar con ellas de manera efectiva.
¿Por qué hay tantas extensiones?
La confusión proviene de dos factores principales:
- El Estándar (X.509): Este es el estándar internacional para certificados de clave pública.
- La Codificación: Cómo se almacenan realmente los datos del certificado en el archivo (ASCII Base64 frente a Binario).
Esencialmente, diferentes plataformas (Windows frente a Linux), diferentes servidores (IIS frente a Nginx) y diferentes protocolos (SSL/TLS frente a SSH frente a PGP) han preferido históricamente diferentes formas de almacenar la misma información criptográfica subyacente.
Tabla de referencia rápida: Extensiones comunes de certificados y claves
| Extensión | Formato | Descripción | Uso común |
|---|---|---|---|
.pem |
ASCII (Base64) | Privacy Enhanced Mail | Servidores web (Nginx, Apache), certificados SSL/TLS, claves privadas |
.crt, .cer |
ASCII o Binario | Certificado | Solo certificados públicos (sin claves privadas) |
.der |
Binario | Distinguished Encoding Rules | Plataformas Java, Windows (a menudo usado para certificados de CA específicos) |
.key |
ASCII o Binario | Clave privada | La clave privada correspondiente a un certificado público |
.csr |
ASCII (Base64) | Certificate Signing Request | El archivo enviado a una CA para solicitar un certificado firmado |
.p12, .pfx |
Binario | Archivo PKCS#12 | Agrupación de un certificado y su clave privada en un único archivo protegido por contraseña |
.p7b, .p7c |
ASCII (Base64) | PKCS#7 / CMS | Exportación de cadenas de certificados (sin claves privadas) |
.asc, .sig, .gpg |
ASCII o Binario | PGP / OpenPGP | Firmas digitales, correos electrónicos cifrados y verificación de software |
1. Codificaciones de certificados X.509 (Los "tres grandes")
PEM (Privacy Enhanced Mail) — .pem, .crt, .cer, .key
Este es el formato más común que encontrará en Linux y servidores web. Es un formato basado en ASCII (texto) que comienza con un encabezado como -----BEGIN CERTIFICATE----- y termina con -----END CERTIFICATE-----. Los datos intermedios están codificados en Base64.
- Ventajas: Legible por humanos, fácil de copiar/pegar en archivos de configuración.
- Uso de extensiones: Aunque
.pemes el estándar, muchas personas usan.crto.cerpara certificados públicos y.keypara claves privadas, incluso si técnicamente todos están en formato PEM.
DER (Distinguished Encoding Rules) — .der, .cer
Esta es la versión binaria de un archivo PEM. Si lo abre en un editor de texto, verá caracteres extraños.
- Ventajas: Más compacto que PEM.
- Dónde encontrarlo: Común en entornos Java, exportaciones de certificados de Windows y algunos módulos de seguridad de hardware (HSM).
PKCS#12 (Personal Information Exchange) — .p12, .pfx
A diferencia de PEM y DER, que suelen contener un solo certificado o clave, PKCS#12 es un formato de archivo comprimido. Puede almacenar un certificado, su clave privada y toda la cadena de la CA en un único archivo protegido por contraseña.
- Dónde encontrarlo: Estándar para Windows (IIS), Java (KeyStore) y el Llavero de macOS.
- Nota:
.pfxes la antigua extensión de Microsoft, mientras que.p12es el estándar multiplataforma más reciente, pero son funcionalmente idénticos.
2. Extensiones de solicitud y metadatos
CSR (Certificate Signing Request) — .csr
Esto no es un certificado en sí mismo. Es una solicitud que usted genera en su servidor (que contiene su clave pública e información de la organización) para enviarla a una Autoridad de Certificación (como Let's Encrypt, DigiCert). Ellos lo firmarán y le devolverán un archivo .crt o .pem.
PKCS#7 / CMS — .p7b, .p7c
Este formato se utiliza principalmente para compartir "cadenas de certificados". Puede contener su certificado más los certificados de la CA intermedia y raíz. Nunca contiene una clave privada. A menudo verá esto al descargar certificados de una CA en formato "Windows" o "IIS".
3. Extensiones PGP y GPG
Si está verificando descargas de software (como el kernel de Linux o una biblioteca popular), verá:
.asc: Un archivo PGP con armadura ASCII (firma basada en texto)..sig,.gpg: Claves o firmas PGP binarias..pub: A menudo se utiliza para denotar una clave pública PGP.
4. Cómo abrir y verificar estos archivos
En Linux / macOS / Windows (con OpenSSL)
OpenSSL es la navaja suiza para estos archivos. Aquí hay algunos comandos comunes:
Para ver un archivo PEM (certificado público):
openssl x509 -in certificate.crt -text -noout
Para ver un archivo DER (binario):
openssl x509 -in certificate.der -inform der -text -noout
Para ver un archivo PKCS#12 (.p12 / .pfx):
openssl pkcs12 -info -in key-and-cert.p12
5. Conversión entre formatos
Las plataformas a menudo requieren formatos específicos. He aquí cómo convertirlos:
De PEM a DER:
openssl x509 -in cert.pem -outform der -out cert.der
De DER a PEM:
openssl x509 -in cert.der -inform der -outform pem -out cert.pem
De PEM a PFX (.p12): (Requiere combinar el certificado y la clave privada)
openssl pkcs12 -export -out certificate.pfx -inkey private.key -in certificate.crt -certfile CA-chain.crt
Preguntas frecuentes (FAQ)
P: ¿Puedo simplemente renombrar un archivo .pem a .crt?
R: En muchos casos, sí. La mayoría de los servidores web (como Nginx) buscan el encabezado "BEGIN CERTIFICATE" dentro del archivo en lugar de la extensión. Sin embargo, si la plataforma espera un archivo binario .der y usted proporciona un archivo .pem renombrado, fallará.
P: ¿Cuál es la diferencia entre .p12 y .pfx?
R: No hay ninguna diferencia funcional. .pfx era la extensión propiedad de Microsoft, mientras que .p12 es el estándar de la industria (PKCS#12). Ambos sirven como contenedores protegidos por contraseña para certificados y claves privadas.
P: ¿Por qué no puedo ver mi clave privada en un archivo .p7b?
R: Porque el estándar PKCS#7 (usado por .p7b) está diseñado específicamente para la distribución de certificados y no admite el almacenamiento de claves privadas. Si necesita agrupar una clave privada, debe usar PKCS#12 (.p12).
P: ¿Es un archivo .key siempre una clave privada?
R: Por lo general, pero no siempre. Si bien .key es la extensión convencional para las claves privadas, algunos proveedores la usan para claves públicas o incluso archivos de licencia. Compruebe siempre el contenido (por ejemplo, -----BEGIN PRIVATE KEY-----).
Herramientas relacionadas en Tool3M
- Generador de Hash: Verifique la integridad de sus archivos de certificados descargados utilizando SHA-256.
- Guía de Certificados SSL/TLS: Obtenga más información sobre los protocolos de seguridad subyacentes.