Pack Camo

Decodificador de certificados X.509

Lee el sujeto, emisor, validez, SAN y huellas de cualquier certificado PEM o DER.

Todo se ejecuta localmente: no se sube nada.

Certificado

2 certificados

…

Mira exactamente qué dice un certificado

Este decodificador lee certificados X.509 — los certificados SSL/TLS de cada sitio HTTPS, y los que se usan para autenticación de cliente, firma de código y S/MIME — y muestra su contenido: sujeto y emisor, fechas de validez y días hasta la caducidad, nombres alternativos del sujeto, tipo y tamaño de la clave pública, todas las extensiones y las huellas SHA-1 y SHA-256. Pega uno o varios bloques PEM, Base64 sin más, o suelta un archivo .crt, .cer, .der, .pem o .p7b. Una cadena completa se decodifica certificado a certificado y cada firma se comprueba con el siguiente. El análisis ocurre en tu navegador; no se sube nada.

Cómo decodificar un certificado

  1. 1Pega el certificado, incluidas las líneas -----BEGIN CERTIFICATE----- y -----END CERTIFICATE-----, o suelta el archivo sobre la entrada.
  2. 2Lee el resumen: para quién se emitió, quién lo emitió y si es válido hoy.
  3. 3Revisa los Subject Alternative Names: los navegadores comparan el nombre de host con estos, no con el Common Name.
  4. 4Copia una huella para compararla con otra copia, o exporta todo como JSON.

¿Qué contiene un certificado X.509?

Un certificado vincula una clave pública a un nombre y lo firma un emisor que avala ese vínculo. El sujeto es para quién es el certificado y el emisor es quién lo firmó, ambos escritos como nombres distinguidos, por ejemplo CN=example.com, O=Example Inc., C=US. El periodo de validez indica el primer y el último momento en que se puede confiar en el certificado, y el número de serie lo identifica de forma única entre todo lo que ha firmado el emisor — es lo que aparece en las listas de revocación.

Todo lo demás está en las extensiones. Desde la versión 3 del formato, que siguen todos los certificados actuales, son las que aportan casi todo el significado: qué nombres cubre, para qué se puede usar la clave, si puede firmar otros certificados y dónde comprobar si ha sido revocado.

Las extensiones que importan

Subject Alternative Name (SAN)
Los nombres DNS, direcciones IP, correos y URI para los que es válido el certificado. Los navegadores ignoran el Common Name y solo miran esta lista; un comodín como <code>*.example.com</code> cubre un nivel de subdominio.
Key Usage y Extended Key Usage
Qué puede hacer la clave: firmar, cifrar claves, firmar certificados; y con qué fin, como autenticación de servidor TLS o firma de código.
Basic Constraints
Si es una autoridad de certificación (<code>CA:TRUE</code>) que puede firmar otros certificados, y cuántos niveles intermedios pueden seguirla (longitud de ruta).
Authority Information Access y CRL Distribution Points
Dónde descargar el certificado del emisor, dónde está su respondedor OCSP y dónde se encuentra su lista de revocación de certificados.
Certificate Policies
Qué nivel de validación aplicó la CA: validación de dominio (DV), de organización (OV) o extendida (EV).
Signed Certificate Timestamps
Prueba de que el certificado se registró en logs públicos de Certificate Transparency, algo que los navegadores exigen a los certificados TLS de confianza pública.

PEM, DER, CRT y CER

DER es la codificación binaria de un certificado (ASN.1 Distinguished Encoding Rules). PEM son los mismos bytes en Base64 entre líneas -----BEGIN CERTIFICATE-----, para poder pegarlos en archivos de texto y correos; varios bloques PEM en un archivo forman una cadena. Las extensiones .crt y .cer no indican qué codificación hay dentro — ambas son habituales — y este decodificador acepta las dos. Un archivo .p7b es un paquete PKCS#7 con varios certificados, y también se abre.

Para convertir en la línea de comandos, openssl x509 -in cert.der -inform der -out cert.pem pasa de DER a PEM, y openssl x509 -in cert.pem -noout -text muestra prácticamente la misma información que esta página.

Cadenas, certificados autofirmados y huellas

Un servidor debe enviar su propio certificado seguido de los intermedios que llevan a una raíz de confianza. Cuando pegas una cadena aquí, la firma de cada certificado se verifica con la clave pública del siguiente, así ves de un vistazo si el orden es correcto y si falta algún eslabón. Un certificado cuyo sujeto y emisor coinciden, y cuya firma se verifica con su propia clave, es autofirmado: o una CA raíz o un certificado hecho para pruebas.

Una huella es un hash del certificado entero. Las huellas SHA-256 son la forma estándar de fijar (pinning) o comparar certificados; las huellas SHA-1 todavía aparecen en herramientas antiguas como el visor de certificados de Windows. El hash SPKI SHA-256 cubre solo la clave pública y no cambia cuando el certificado se renueva con la misma clave. Para crear un par de claves para un nuevo certificado, usa el generador de pares de claves.

Preguntas frecuentes

¿Cómo compruebo cuándo caduca un certificado SSL?
Pega el certificado y mira Validez: la fecha No después de es cuando caduca, y la etiqueta muestra cuántos días quedan. Para obtener el certificado de un sitio, ábrelo en el visor de certificados de tu navegador y expórtalo, o ejecuta openssl s_client -connect example.com:443 -showcerts.
¿Qué diferencia hay entre PEM y DER?
Contienen el mismo certificado. DER es binario; PEM es ese binario en Base64 con líneas BEGIN y END. Esta herramienta lee ambos.
¿Por qué mi navegador dice que el nombre no coincide?
El nombre de host debe aparecer en la extensión Subject Alternative Name. Los navegadores ya no miran el Common Name, así que se rechaza un certificado cuyo nombre solo está en el CN.
¿Puedo decodificar una cadena de certificados completa?
Sí. Pega todos los bloques PEM juntos, o suelta un paquete .pem o .p7b. Cada certificado se muestra en orden y cada firma se comprueba con la clave del siguiente.
¿Qué significa autofirmado?
El certificado se firmó con su propia clave y no por una CA aparte. Los certificados de CA raíz son autofirmados por diseño; en un sitio web, un certificado autofirmado solo es de confianza donde se ha instalado a mano.
¿Puede decodificar una clave privada o un CSR?
No. Solo lee certificados, y te avisa si pegas una clave privada, una clave pública o una solicitud de firma de certificado.
¿Es seguro pegar aquí mi certificado?
Los certificados son públicos — los servidores los envían a cada visitante — y de todos modos la decodificación ocurre por completo en tu navegador. Nunca pegues una clave privada en ningún sitio web.