Generador de Huella de Certificado
Genera huellas SHA-256 y SHA-1 de certificados
Certificate (PEM Format)
About Fingerprints
Certificate fingerprints are cryptographic hashes used to uniquely identify certificates.
SHA-256 is recommended for modern applications.
Fingerprints
Paste a PEM certificate to generate fingerprints
El Certificate Fingerprint Generator calcula hashes criptográficos SHA-256, SHA-1 y MD5 de certificados X.509, produciendo los identificadores únicos utilizados para certificate pinning, verificación fuera de banda y auditoría de seguridad, todo calculado localmente en tu navegador. Pega un certificado PEM y obtén fingerprints en formato hexadecimal separado por dos puntos, hexadecimal continuo y base64.
Entendiendo los fingerprints de certificados
Un fingerprint de certificado no es un campo almacenado dentro del certificado en sí. Es un hash criptográfico calculado sobre los bytes completos del certificado codificado en DER. Piensa en él como un resumen compacto de todo el certificado: cambia un solo bit en cualquier parte del certificado -- un número de serie diferente, una fecha de validez diferente, un emisor diferente -- y obtienes un fingerprint completamente diferente. Esta propiedad hace que los fingerprints sean invaluables para identificar y comparar certificados sin necesidad de coincidir cada campo individualmente.
El uso más común de los fingerprints es el certificate pinning. Cuando construyes una aplicación móvil o un cliente API que se conecta a un servidor específico, puedes incrustar el fingerprint SHA-256 esperado del certificado en tu código. Durante el handshake TLS, tu aplicación calcula el fingerprint del certificado del servidor y lo compara con el valor incrustado. Si no coinciden, la conexión se rechaza -- incluso si el certificado es técnicamente válido y está firmado por una CA de confianza. Esto protege contra ataques de intermediario donde un atacante presenta un certificado fraudulento pero firmado por una CA.
Los fingerprints también son esenciales para la verificación fuera de banda. Si alguien te envía un certificado por correo electrónico y quieres confirmar que no ha sido manipulado, puedes llamarle por teléfono y leer el fingerprint SHA-256. Si el fingerprint coincide con lo que ellos calcularon en su extremo, sabes que tienes el mismo certificado. Este flujo de trabajo es común al intercambiar certificados para configuraciones de TLS mutuo entre organizaciones.
Cómo generar un fingerprint de certificado
- Pega tu certificado codificado en PEM (comenzando con
-----BEGIN CERTIFICATE-----) - La herramienta calcula los fingerprints usando los algoritmos SHA-256, SHA-1 y MD5
- Copia el fingerprint en tu formato preferido (hexadecimal separado por dos puntos, hexadecimal continuo o base64)
- Usa el fingerprint para configuración de pinning, documentación o verificación
Formatos de salida de fingerprint de certificado
El generador produce fingerprints en múltiples representaciones para diferentes casos de uso:
| Formato | Ejemplo | Usado por |
|---|---|---|
| Hexadecimal separado por dos puntos | A1:B2:C3:D4:E5:F6:78:9A:... | OpenSSL, verificación manual |
| Hexadecimal continuo | A1B2C3D4E5F6789A... | Comparación programática |
| Base64 | obLD1OX2mno=... | HPKP, pinning en Android e iOS |
Comparación de algoritmos
| Algoritmo | Longitud del hash | Estado |
|---|---|---|
| SHA-256 | 64 caracteres hexadecimales (256 bits) | Estándar recomendado |
| SHA-1 | 40 caracteres hexadecimales (160 bits) | Heredado, todavía se ve en herramientas antiguas |
| MD5 | 32 caracteres hexadecimales (128 bits) | Obsoleto, no para uso de seguridad |
Ejemplo de generación de fingerprint
Para un certificado con CN=www.example.com:
SHA-256 Fingerprint:
Hex: B4:5A:E2:C3:7F:D1:92:4B:88:E6:A0:3C:55:71:F8:09:
2D:A4:C6:B7:E8:1F:3A:50:96:D2:44:7B:CC:8E:15:61
Base64: tFriw3/RkksI5qA8VXH4CS2kxrfoHzpQltJEe8yOFWE=
SHA-1 Fingerprint:
Hex: 9A:C2:D5:F7:11:3B:8E:44:6D:A9:01:C3:77:52:BB:DE:FF:08:91:23
MD5 Fingerprint:
Hex: 4D:2B:9A:C1:E5:F3:78:06:AA:11:DD:55:B2:C4:E6:F8
Cuándo usar esta herramienta
- Implementación de certificate pinning -- extrae fingerprints SHA-256 para fijar certificados en aplicaciones móviles (Android
network-security-config.xmlo iOSInfo.plist) - Verificación fuera de banda -- compara fingerprints por un canal separado para confirmar que tienes el certificado correcto
- Auditorías de seguridad -- documenta los fingerprints de certificados en políticas de seguridad e informes de cumplimiento
- Comparación entre entornos -- verifica que los certificados desplegados en staging, producción y CDN coincidan comparando fingerprints
- Configuración de proxy de inspección TLS -- configura fingerprints de certificados de confianza para las allowlists de interceptación del proxy
- Detección de cambios -- compara fingerprints antes y después de operaciones de certificados para confirmar si un certificado fue realmente reemplazado
Cómo funcionan los fingerprints de certificados
Un fingerprint de certificado es un hash criptográfico de todo el certificado codificado en DER. No es un campo dentro del certificado -- se calcula sobre los bytes crudos del certificado. Esto significa que cualquier cambio en el certificado, sin importar cuán pequeño, produce un fingerprint completamente diferente.
El fingerprint identifica de manera única un certificado específico. Dos certificados con diferentes períodos de validez, números de serie o emisores tendrán fingerprints diferentes incluso si comparten la misma clave pública y sujeto. Esta distinción importa: el certificate pinning fija a un certificado específico, mientras que el public key pinning fija a la clave independientemente de qué certificado la contenga.
Pinning con SHA-256
El certificate pinning en producción siempre debería usar SHA-256. El flujo de implementación típico:
- Extrae el fingerprint SHA-256 del certificado hoja de tu servidor
- Incrusta el fingerprint en el código o la configuración de tu aplicación
- Durante el handshake TLS, calcula el fingerprint del certificado recibido
- Compara con el fingerprint almacenado -- rechaza si no coinciden
Calcular fingerprints con OpenSSL
Puedes verificar la salida de esta herramienta contra OpenSSL:
# Fingerprint SHA-256
openssl x509 -in cert.pem -noout -fingerprint -sha256
# Fingerprint SHA-1
openssl x509 -in cert.pem -noout -fingerprint -sha1
# Fingerprint MD5
openssl x509 -in cert.pem -noout -fingerprint -md5
Mejores prácticas de fingerprints
La decisión más importante en el certificate pinning es elegir entre fijar el fingerprint del certificado y fijar el hash de la clave pública. Los fingerprints de certificados son más simples de implementar -- haces hash de todo el certificado y comparas -- pero se rompen cada vez que renuevas porque un certificado renovado tiene diferentes fechas de validez, número de serie y firma, produciendo un fingerprint diferente. Si fijas un fingerprint de certificado sin un plan de rotación, tu aplicación dejará de conectarse en el momento en que se renueve el certificado. Siempre fija al menos dos fingerprints: el certificado actual y el próximo que planeas desplegar.
El public key pinning, por el contrario, sobrevive a la renovación siempre que reutilices el mismo par de claves. Muchos equipos prefieren este enfoque porque desacopla el pinning del ciclo de renovación. Sin embargo, si tu política de seguridad requiere rotación de claves en cada renovación, el public key pinning no ofrece ninguna ventaja y vuelves a gestionar actualizaciones de pins. De cualquier manera, necesitas una estrategia para rotar pins antes de que el certificado o clave actual se retire.
Al documentar certificados para cumplimiento u operaciones, incluye el fingerprint SHA-256 junto con el sujeto, emisor y fecha de expiración. Los fingerprints te dan un identificador inequívoco que es mucho más confiable que comparar nombres de sujeto, que pueden ser idénticos en múltiples certificados. Si necesitas rastrear un certificado específico entre balanceadores de carga, nodos CDN y sistemas de monitoreo, el fingerprint es la referencia canónica.
Preguntas frecuentes
¿Cuál es la diferencia entre un fingerprint de certificado y un hash de clave pública? Un fingerprint de certificado hace hash de todo el certificado (incluyendo sujeto, emisor, validez y la clave pública). Un hash de clave pública solo cubre la porción SubjectPublicKeyInfo. Los fingerprints de certificados cambian cuando renuevas un certificado, incluso si reutilizas la misma clave. Los hashes de clave pública permanecen estables entre renovaciones con el mismo par de claves, razón por la cual algunas implementaciones de pinning los prefieren.
¿Qué algoritmo de fingerprint debería usar? Usa SHA-256 para todas las implementaciones nuevas. SHA-1 tiene ataques de colisión conocidos y solo se necesita para compatibilidad con sistemas heredados que no soportan SHA-256. MD5 está criptográficamente roto y nunca debería usarse para verificación sensible a la seguridad.
¿Cómo calculo un fingerprint con OpenSSL para comparar?
Ejecuta openssl x509 -in cert.pem -noout -fingerprint -sha256 para producir el fingerprint SHA-256 en formato hexadecimal separado por dos puntos. Compara esta salida carácter por carácter con el resultado de esta herramienta para verificar la consistencia.
¿Pueden dos certificados diferentes tener el mismo fingerprint? En la práctica, no. SHA-256 produce un hash de 256 bits, y encontrar dos entradas diferentes que produzcan el mismo hash (una colisión) es computacionalmente inviable con la tecnología actual. Se han demostrado colisiones de SHA-1 en investigación, lo cual es una razón por la que SHA-256 es el estándar recomendado.
¿Los fingerprints de certificados cambian cuando el formato del certificado cambia de DER a PEM? No. El fingerprint siempre se calcula sobre los bytes codificados en DER, independientemente de cómo se almacene o transmita el certificado. Convertir entre DER y PEM no cambia los datos DER subyacentes, por lo que el fingerprint permanece igual.
Herramientas relacionadas
- X.509 Certificate Viewer - Ver detalles completos del certificado incluyendo sujeto, emisor y extensiones
- Public Key Extractor - Extraer la clave pública para pinning basado en clave en lugar de pinning de certificado
- Certificate Expiry Checker - Verificar fechas de validez y días restantes hasta la expiración
- SAN Extractor - Extraer todos los Subject Alternative Names de un certificado
- Convert DER to PEM - Convertir certificados binarios DER a formato PEM antes del fingerprinting