Comprobador de certificado y clave
Introduce cualquier mezcla de certificados, claves privadas y CSR — PEM o DER — y este banco de trabajo demuestra qué clave corresponde a qué certificado, ordena los certificados en una cadena, convierte formatos y genera CSR. Las claves privadas nunca salen de tu navegador: todo se analiza localmente en esta pestaña, las claves se guardan solo en memoria y nunca se suben, se registran ni se almacenan, y esta página no hace ninguna petición de red. Para decodificar un certificado en profundidad, usa el analizador de certificados SSL; para un certificado autofirmado rápido, el generador de certificados autofirmados.
Añadir certificados, claves y CSR
Veredicto de emparejamiento
Añade un certificado y una clave privada y el veredicto aparecerá aquí: qué clave corresponde a qué certificado, demostrado por una clave pública idéntica — nunca adivinado por los nombres de archivo.
Constructor de cadenas
Con dos o más certificados cargados, el constructor los ordena con la hoja primero, luego el/los intermedio(s) y por último la raíz, emparejando los nombres de emisor y de sujeto — y después, donde la criptografía del navegador lo permite, verifica la firma real de cada eslabón en lugar de fiarse de los nombres.
Generar un CSR
Una solicitud de firma de certificado para una clave generada aquí, en tu navegador: rellena el sujeto, elige el tipo de clave y descarga el CSR para enviarlo a tu CA — además de la clave privada, que debes guardar de forma segura tú mismo. La clave se muestra solo aquí; esta página no la conserva.
Solicitud de firma de certificado (PEM)
Clave privada (PEM) — guarda esta clave de forma segura, se muestra solo aquí
Cómo funciona realmente el emparejamiento
Un certificado y una clave privada no son dos mitades de un mismo archivo; son dos archivos que comparten un mismo objeto matemático. Cuando se genera un par de claves, la mitad pública se coloca dentro del certificado (y dentro de cualquier CSR hecho con esa clave), mientras que la mitad privada permanece en el archivo de la clave. Dos elementos emparejan exactamente cuando llevan la misma clave pública — para RSA, el mismo módulo y exponente; para EC, el mismo punto en la misma curva. Esta página codifica esa clave pública en su envoltorio estándar (el SubjectPublicKeyInfo), aplica SHA-256 a la codificación y agrupa cada elemento cargado por ese hash. El hash que se muestra en cada tarjeta es, por tanto, la prueba, no un resumen: los hashes idénticos no pueden darse por accidente, y una no coincidencia es igual de segura, y por eso el veredicto puede decirse sin rodeos — esta clave corresponde a este certificado, o ninguna clave cargada lo hace. El fallo clásico que esto detecta está descrito en cuando tu clave no corresponde a tu certificado: la recarga de las 2 de la madrugada en la que el certificado renovado en disco pertenece a una clave distinta de la que el servidor tiene cargada.
Los nombres de archivo no demuestran nada. Un directorio lleno de server.crt, server.key, final-v2.pem y un CSR del intento de renovación del año pasado es el estado normal de una infraestructura heredada, y los nombres son arqueología, no documentación. Tampoco lo demuestran una extensión de archivo coincidente o una fecha coincidente. ¿Y la comprobación tradicional de openssl — comparar el hash del módulo del certificado con el hash del módulo de la clave? Es exactamente la comprobación de esta página, limitada a RSA y a un par cada vez, y pasa por alto las claves EC por completo porque las claves EC no tienen módulo. La huella de la clave pública cubre todos los algoritmos por igual, y por eso es aquí la clave de agrupación.
Cadenas, orden y qué significa «verificado»
Se espera que los servidores presenten primero el certificado hoja, luego cada intermedio en orden, para que un cliente pueda recorrer los eslabones de emisor a sujeto hasta una raíz en la que ya confía. Presentar los mismos certificados en el orden equivocado — o con un intermedio ausente — produce la clásica familia de errores «unable to get local issuer certificate» en clientes que no pueden obtener por sí mismos el eslabón que falta. El constructor de arriba reconstruye el orden solo a partir de los nombres, lo cual siempre es posible, y después da un paso más: para firmas RSA y ECDSA importa la clave pública del emisor y comprueba la firma sobre los bytes firmados del certificado. Un eslabón etiquetado como firma verificada está demostrado criptográficamente. Un eslabón etiquetado como solo coincidencia de nombre no lo está — los nombres encadenan, pero la firma usa un algoritmo que esta plataforma no comprueba (RSA-PSS es el caso habitual), y la página lo dice en lugar de disfrazar una coincidencia de nombre como una prueba. Si una comprobación de firma falla, los nombres fueron una coincidencia o una falsificación, y el constructor muestra el fallo en rojo en lugar de producir un paquete en silencio.
Formatos: PEM, DER y la cuestión del .pfx
PEM son bytes DER envueltos en Base64 con una cabecera etiquetada; DER es la codificación en bruto. Convertir entre ellos no pierde nada y no demuestra nada — es el mismo objeto en un sobre distinto — y por eso cada tarjeta ofrece ambas descargas. Windows y algunas herramientas Java prefieren DER o PKCS#12; la mayoría de las herramientas Unix quieren PEM. PKCS#12 (.pfx/.p12) es otra cosa: es un contenedor cifrado con su propio MAC de integridad, y producir uno que todos los consumidores acepten — con una protección que merezca ese nombre — no es algo que deba hacerse a mano en una página web. Esta herramienta deliberadamente no lo ofrece. Para empaquetar tú mismo un par emparejado, ejecuta openssl donde viven los archivos: openssl pkcs12 -export -inkey key.pem -in cert.pem -certfile chain.pem -out bundle.pfx — después de que esta página te haya dicho qué clave, certificado y cadena van realmente juntos.
El análisis y el encadenamiento son código DER hecho a mano para este sitio (estilo BSD, sin analizador de terceros); el hash, la verificación de firmas y la generación de claves usan el WebCrypto del navegador. Ninguna parte de esta herramienta hace una petición de red.
Preguntas frecuentes
¿Cómo demuestra el comprobador que una clave y un certificado van juntos?
Comparando la clave pública, no los archivos. Todo certificado, CSR y clave privada produce la misma clave pública codificada (el SubjectPublicKeyInfo); esta página le aplica SHA-256 y agrupa los elementos cuyos hashes coinciden. Una clave pública idéntica significa que la clave privada es matemáticamente aquella para la que se emitió el certificado — la misma comprobación que openssl hace con su comparación de módulos, hecha para todos los archivos a la vez y para claves EC además de RSA.
¿Es seguro cargar una clave privada real en una página web?
En esta página, sí, por cómo está construida: todo se analiza localmente en tu navegador, las claves se guardan solo en la memoria de esta pestaña, nada se sube, se registra ni se escribe en ningún almacenamiento, y la página no hace ninguna petición de red. El hábito que conviene mantener es comprobar esa afirmación en cualquier herramienta antes de pegar una clave — y no pegar nunca una clave privada en un chat, un ticket o un «comprobador» del lado del servidor que la procesa de forma remota.
¿Qué significa «solo coincidencia de nombre» en el constructor de cadenas?
El constructor de cadenas ordena los certificados emparejando el nombre de emisor de cada certificado con el nombre de sujeto del siguiente, y luego intenta verificar la firma real con la clave pública del emisor. Cuando el algoritmo de firma es uno que el WebCrypto del navegador puede comprobar (RSA y ECDSA en la práctica), el eslabón se etiqueta como «firma verificada» o, si la comprobación falla, «firma FALLIDA». Todo lo demás — RSA-PSS es el caso común — se etiqueta honestamente como «solo coincidencia de nombre»: los nombres cuadran, pero esta página no demostró criptográficamente el eslabón.
¿Por qué no hay exportación a PKCS#12 (.pfx)?
Un archivo PKCS#12 envuelve una clave y un certificado en un cifrado basado en contraseña con integridad MAC — un formato que necesita una codificación cuidadosa y bien probada. En lugar de ofrecer una versión hecha a mano que podría producir archivos que otro software rechaza (o, peor, claves débilmente protegidas), esta página convierte entre PEM y DER y deja el empaquetado .pfx a openssl: el comando se muestra en la página para que puedas ejecutarlo donde ya vive la clave.
¿Puede esta página leer una clave privada cifrada?
Puede identificar una y decirlo, pero no puede usarla: una clave cifrada (protegida por contraseña) no revela su clave pública hasta que se descifra, y el emparejamiento se hace sobre la clave pública. Descifra una copia localmente con openssl (pkcs8 -topk8 -nocrypt, o rsa/ec) y carga la copia descifrada — en una máquina en la que confíes, y borra la copia después.