Extractor de Clave Publica

Extrae la clave publica de un certificado o CSR

Certificate, CSR, or Public Key

Extracted Public Key

Paste a certificate or CSR to extract the public key

El Public Key Extractor aísla la clave pública de certificados X.509 o Certificate Signing Requests, generándola en formato PEM SubjectPublicKeyInfo (SPKI) estándar -- esencial para verificación de coincidencia de claves, public key pinning y confirmar que un certificado fue emitido para la clave privada correcta. Pega un certificado o CSR y obtén la clave pública extraída con su algoritmo, tamaño y hash SPKI.

Entendiendo la extracción de claves públicas

Cada certificado y CSR contiene una clave pública, pero esa clave está enterrada dentro de una estructura de datos más grande junto con el nombre del sujeto, emisor, fechas de validez, extensiones y firmas. A veces necesitas solo la clave en sí -- despojada de todos los metadatos del certificado que la rodean. Esto es lo que hace la extracción de claves públicas: extrae la estructura SubjectPublicKeyInfo (SPKI) que contiene el identificador del algoritmo de la clave y los datos de la clave, y la presenta como un bloque PEM independiente.

La razón más práctica para extraer una clave pública es verificar que un certificado, un CSR y una clave privada pertenecen al mismo conjunto. Cuando generas un par de claves, la clave privada y el certificado emitido a partir de ella deben contener la misma clave pública. Si no coinciden -- porque alguien mezcló los archivos, o se envió el CSR incorrecto -- tu servidor TLS fallará al iniciar con un error críptico sobre key mismatch. Extraer la clave pública de cada archivo y comparar los hashes SPKI es la forma más rápida de confirmar que son un conjunto coincidente.

La extracción de claves públicas también es central para el public key pinning. A diferencia del certificate pinning, que fija un certificado específico (y se rompe con la renovación), el public key pinning fija la clave en sí. Mientras reutilices el mismo par de claves al renovar, el pin permanece válido. Las aplicaciones móviles, clientes API y servicios sensibles a la seguridad comúnmente usan hashes SPKI para pinning, y esta herramienta proporciona esos hashes en el formato correcto para Android, iOS e implementaciones personalizadas.

Cómo extraer una clave pública de un certificado

  1. Pega un certificado codificado en PEM (-----BEGIN CERTIFICATE-----) o CSR (-----BEGIN CERTIFICATE REQUEST-----)
  2. La herramienta extrae la clave pública en formato PEM SPKI
  3. Revisa los metadatos de la clave (algoritmo, tamaño, hash)
  4. Copia la clave pública extraída o usa el hash para comparación

Ejemplo de extracción de clave pública

Desde un certificado con CN=www.example.com:

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzR4p3vGh8Kx2...
...truncated...
-----END PUBLIC KEY-----

Key Metadata:
  Algorithm:   RSA
  Key Size:    2048 bits
  SPKI Hash:   sha256/YLh1dUR9y6Kja30RrAn7JKnbQG/uEtLMkBgFF2Fuihg=

Tipos de clave y su salida

Algoritmo de ClaveTamaños TípicosFormato de Salida
RSA2048, 3072, 4096 bitsPKCS#1 envuelto en SPKI
ECDSAP-256 (256 bits), P-384 (384 bits)Punto EC en SPKI
Ed25519256 bits (fijo)Clave sin procesar en SPKI

Cómo verificar la coincidencia entre certificado y clave privada

El uso más común de las claves públicas extraídas es verificar que un certificado fue emitido para una clave privada específica. Dos métodos:

Método 1: Comparar hashes SPKI

Extrae la clave pública tanto del certificado como del archivo de clave privada, luego compara sus hashes SPKI SHA-256:

# Desde el certificado (usando esta herramienta u OpenSSL):
openssl x509 -in cert.pem -pubkey -noout | openssl pkey -pubin -outform DER | openssl dgst -sha256
# Salida: sha256=YLh1dUR9y6Kja30RrAn7JKnbQG/uEtLMkBgFF2Fuihg=

# Desde la clave privada:
openssl pkey -in key.pem -pubout -outform DER | openssl dgst -sha256
# Salida: sha256=YLh1dUR9y6Kja30RrAn7JKnbQG/uEtLMkBgFF2Fuihg=

Si los hashes coinciden, el certificado y la clave privada son un par válido.

Método 2: Comparar módulo (solo RSA)

Para claves RSA, compara los valores del módulo:

openssl x509 -in cert.pem -noout -modulus | openssl md5
openssl rsa -in key.pem -noout -modulus | openssl md5

Hashes MD5 coincidentes confirman que el par de claves coincide.

Cuándo usar esta herramienta

  • Coincidencia de claves antes del despliegue -- verificar que tu certificado, CSR y clave privada comparten la misma clave pública antes de configurar un servidor
  • Public key pinning -- extraer el hash SPKI para implementar HTTP Public Key Pinning (HPKP) o pinning a nivel de aplicación en aplicaciones Android/iOS
  • Verificación de renovación de certificados -- confirmar si un certificado renovado usa el mismo par de claves o uno nuevo
  • Comparación entre CAs -- comparar certificados emitidos por diferentes CAs para el mismo par de claves (por ejemplo, migrando de una CA a otra)
  • Seguimiento de rotación de claves -- documentar hashes de claves públicas a lo largo del tiempo para rastrear cuándo ocurren las rotaciones de claves
  • Análisis forense -- determinar si dos certificados de diferentes fuentes comparten el mismo par de claves subyacente

Diferencias entre public key pinning y certificate pinning

AspectoCertificate PinningPublic Key Pinning
Qué se fijaHash del certificado completoHash de la clave pública (SPKI)
Sobrevive a renovaciónNo (nuevo cert = nuevo hash)Sí, si se reutiliza la misma clave
GranularidadSolo el certificado exactoCualquier certificado con esta clave
Pins de respaldoDebe fijar certificados de respaldoPuede fijar claves de respaldo
Formato comúnSHA-256 del certificado DERSHA-256 del SPKI DER

El public key pinning generalmente se prefiere porque permite la renovación de certificados sin actualizar los pins, siempre y cuando se reutilice el mismo par de claves. Sin embargo, algunas políticas de seguridad requieren rotación de claves en cada renovación, en cuyo caso el certificate pinning proporciona un control más estricto.

Extracción de claves en la práctica

El caso de uso más importante para la extracción de claves es la verificación previa al despliegue que previene el temido error de "key mismatch". Antes de instalar un nuevo certificado en un servidor de producción, extrae la clave pública de tres fuentes: el certificado, el CSR que se envió, y la clave privada en el servidor. Los tres hashes SPKI deberían coincidir. Si el hash del certificado no coincide con el hash de la clave privada, el certificado fue emitido para un par de claves diferente y no puede usarse con esa clave privada. Esta verificación toma segundos y previene el proceso mucho más doloroso de descubrir la falta de coincidencia durante una ventana de mantenimiento a las 2 AM.

Para el public key pinning en aplicaciones móviles, el flujo de trabajo es sencillo: extrae el hash SPKI del certificado de tu servidor usando esta herramienta, luego incrusta ese hash en la configuración de pinning de tu app. En Android, esto va en network-security-config.xml; en iOS, lo implementas en tu URLSessionDelegate. Siempre incluye al menos dos pins -- la clave actual y una clave de respaldo que hayas generado pero aún no desplegado. Sin un pin de respaldo, una rotación de claves fuerza una actualización de emergencia de la app antes de que los usuarios puedan conectarse.

Al rastrear rotaciones de claves en tu infraestructura, mantén un registro de hashes SPKI para cada endpoint de servicio. Después de una renovación de certificado, extrae la clave pública y compárala con el hash anterior. Si el hash cambió, la renovación incluyó una rotación de claves. Si el hash es el mismo, se reutilizó la misma clave. Esta información importa para auditorías de cumplimiento que requieren rotación periódica de claves y para equipos de seguridad que rastrean el ciclo de vida del material criptográfico.

Preguntas frecuentes

¿Qué es SubjectPublicKeyInfo (SPKI)? SPKI es la estructura ASN.1 definida en RFC 5280 que envuelve una clave pública junto con su identificador de algoritmo. Incluye el algoritmo de la clave (RSA, ECDSA, etc.) y los datos de la clave en sí. El formato PEM -----BEGIN PUBLIC KEY----- contiene SPKI codificado en DER. Este formato es universalmente comprendido por OpenSSL, Java, .NET y la mayoría de las bibliotecas criptográficas.

¿Puedo extraer una clave pública de una clave privada en su lugar? Esta herramienta trabaja con certificados y CSRs. Para extraer la clave pública de un archivo de clave privada, usa OpenSSL: openssl pkey -in private.key -pubout -out public.pem. La clave pública resultante estará en el mismo formato SPKI y puede compararse con claves extraídas de certificados usando esta herramienta.

¿Cómo uso la clave extraída para certificate pinning en Android? El network-security-config.xml de Android usa hashes SHA-256 codificados en base64 de la codificación SPKI DER. Esta herramienta proporciona el hash en el formato correcto. Agrégalo a tu configuración: <pin digest="SHA-256">YLh1dUR9y6Kja30RrAn7JKnbQG/uEtLMkBgFF2Fuihg=</pin>.

¿Por qué dos certificados con diferentes fechas de expiración tienen el mismo hash de clave pública? Porque el public key pinning solo genera el hash del material de la clave y el algoritmo, no los metadatos del certificado. Si renovaste un certificado reutilizando el mismo par de claves, el nuevo certificado tendrá diferentes fechas de validez, número serial y firma, pero la clave pública -- y por lo tanto el hash SPKI -- será idéntica.

¿Es seguro compartir mi clave pública? Sí. Las claves públicas están diseñadas para compartirse libremente. Están incluidas en cada certificado que tu servidor presenta durante los handshakes TLS, así que cualquiera que se conecte a tu servidor ya tiene tu clave pública. La clave privada es lo que debe mantenerse en secreto.

Herramientas relacionadas

  • Certificate Fingerprint Generator - Generar fingerprints a nivel de certificado (diferentes de los hashes de clave pública)
  • X.509 Certificate Viewer - Ver detalles completos del certificado incluyendo el algoritmo y tamaño de la clave
  • CSR Viewer - Inspeccionar el CSR que fue usado para solicitar el certificado
  • SAN Extractor - Extraer nombres de dominio cubiertos por el certificado
  • PEM Bundle Splitter - Dividir una cadena para extraer certificados individuales para comparación de claves
IPparse•Herramientas gratuitas de cálculo de redes y subredes

© 2026 IPparse. All tools run locally in your browser.

100% Privacy-First • No Data Collected