Conversor JWK ⇄ PEM
Web PKI y Criptografía

Convertidor de Claves JWK a PEM y PEM a JWK (RSA y EC)

Convierta claves JSON Web Key (JWK / JWKS, RFC 7517) a formato PEM PKCS#8 / SPKI y transforme claves PEM públicas y privadas en estructuras JWK estándar.

Privacidad 100% del lado del cliente
Cero transmisión al servidor
Ajustes predefinidos:
Entrada de clave (JWK / JWKS / PEM)
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0S1CTzIxxA0411a/i9zB
d5knsWNuaAykjSmrckqv7gH8SZgu7pRRUcYQvmsNSR80dSSmqI3fu/EJIaBSCIdw
tDr/ci1qeqRPHXz+52sCFy+DfZU16bLIH70UIVZAu5keLFpWuJ5cNpzxl7MqDGU4
RHWPMqfE4GVSnEzhZ6/+EWpCWqHnu6UVZ9qohjo63eUekTDJMbJjfYYt08JSIGOJ
HXUePxdqxjg7xOzqQ1q8BY249nzSgyvxYPwpGEPvLhxk4L9VrF9uy/v5uT/FG3NW
Fur2s/LaOjKvejvbpvb1nbBTljl/JT+j8cWWjs+5JBLJ0C/y9QRhQeUeR+UsY0HU
bwIDAQAB
-----END PUBLIC KEY-----
Algoritmo y Especificación
RSA • 2048-bit RSA
Huella RFC 7638
Derived SHA-256
Aislamiento en Navegador
Web Crypto local

Criptografía 100% Aislada en Navegador

Cero transmisión al servidor. Sus claves privadas y pares criptográficos se procesan estrictamente dentro de la memoria del navegador.

Motor Dual RSA y Curvas Elípticas

Soporte completo para RSA (2048/4096 bits), ECDSA (P-256, P-384, P-521), SPKI, PKCS#1 y PKCS#8.

Cumplimiento Total con RFC 7517 y RFC 7638

Calcula huellas digitales SHA-256 deterministas bajo RFC 7638 y genera contenedores JWKS estandarizados.

Referencia técnica y guía de arquitectura

Guía para Desarrolladores: Conversor JWK a PEM y PEM a JWK (Claves RSA y EC) — Guía de referencia

Convierta claves JSON Web Key (JWK / JWKS, RFC 7517) a formato PEM PKCS#8 / SPKI y transforme claves PEM públicas y privadas en estructuras JWK estándar.

Parámetros clave y controles

ktystring ('RSA' | 'EC' | 'OKP')

Identificador de la familia criptográfica según la sección 4.1 de RFC 7517.

Por defecto: RSA
crvstring ('P-256' | 'P-384' | 'P-521' | 'secp256k1' | 'Ed25519')

Parámetro de curva criptográfica obligatoria para claves de Curva Elíptica y OKP según RFC 7518.

Por defecto: P-256
formatstring ('SPKI' | 'PKCS#8' | 'PKCS#1' | 'SEC1')

Formato de encapsulación ASN.1 DER delimitado por encabezados estándar PEM.

Por defecto: SPKI / PKCS#8
usestring ('sig' | 'enc')

Uso previsto de la clave pública: verificación de firma digital ('sig') o cifrado de carga ('enc').

Por defecto: sig
kidstring

Identificador único de clave utilizado para hacer coincidir tokens JWT en endpoints JWKS de OAuth 2.0 / OIDC.

Por defecto: UUID/hash opcional

Consejos profesionales y mejores prácticas

Encabezados PEM SPKI frente a PKCS#1

Las API modernas de Web Crypto, OpenSSL 3.0 y los proveedores cloud exigen el formato SubjectPublicKeyInfo (SPKI, '-----BEGIN PUBLIC KEY-----'). Los encabezados antiguos PKCS#1 ('-----BEGIN RSA PUBLIC KEY-----') deben convertirse a SPKI antes de generar representaciones JWK estándar.

RFC 7517 exige codificación Base64URL

RFC 7517 exige codificación Base64URL sin relleno '=' y sustituyendo '+' por '-' y '/' por '_'. Al editar manualmente parámetros como el módulo 'n' o las coordenadas 'x'/'y', elimine los caracteres '=' finales para evitar excepciones en jose o jsonwebtoken.

Al integrar con proveedores OIDC

Al integrar con proveedores OIDC (Auth0, Okta, Firebase, AWS Cognito), busque el atributo 'kid' del encabezado del JWT en la matriz 'keys' de /.well-known/jwks.json para convertir únicamente la clave pública de firma requerida.

Seguridad e interoperabilidad con PKCS#8

Exporte siempre las claves privadas en formato estándar PKCS#8 sin cifrar ('-----BEGIN PRIVATE KEY-----') cuando necesite utilizarlas en entornos de backend como Node.js crypto, Go crypto/x509 o Python cryptography.

Errores comunes y solución de problemas

Error: Tipo de clave no compatible o encabezado PEM no reconocido

Compruebe que el bloque PEM comience con delimitadores válidos como '-----BEGIN PUBLIC KEY-----' (SPKI) o '-----BEGIN PRIVATE KEY-----' (PKCS#8). Asegúrese de no incluir espacios en blanco adicionales ni saltos de línea corruptos.

Fallo en la validación de firma con clave JWK importada (RS256 / ES256)

Verifique que la curva ('crv') coincida con el algoritmo de firma del JWT (por ejemplo, ES256 requiere P-256; ES384 requiere P-384). Compruebe que las coordenadas 'x' e 'y' tengan el relleno de ceros adecuado para el tamaño de clave.

Error al procesar clave privada PEM protegida con contraseña

Las claves PEM con encabezado '-----BEGIN ENCRYPTED PRIVATE KEY-----' están cifradas con contraseña. Descifre la clave previamente con OpenSSL ('openssl pkcs8 -topk8 -nocrypt -in clave_cifrada.pem -out clave.pem') antes de convertirla a JWK.

Preguntas frecuentes (FAQ)

¿Cuál es la diferencia principal entre los formatos JWK y PEM?▼

JWK (RFC 7517) representa claves criptográficas como objetos JSON con valores en Base64URL, diseñado para servicios web y autenticación OAuth/JWT. PEM (RFC 7468) codifica estructuras binarias ASN.1 DER en texto Base64 con encabezados ASCII, siendo el estándar en certificados TLS y OpenSSL.

¿Se pueden convertir colecciones JWKS completas de proveedores como Auth0 o Google?▼

Sí. Al pegar un objeto JWKS completo que contenga un arreglo 'keys', el conversor procesa cada clave individualmente y genera los archivos PEM correspondientes en formato SPKI conservando los Key IDs.

¿Es seguro procesar claves privadas sensibles en este conversor web?▼

Sí, 100% seguro. Todas las transformaciones criptográficas, el análisis ASN.1 y las codificaciones se procesan exclusivamente en la memoria de su navegador mediante la Web Cryptography API. Ninguna clave viaja por la red.

¿Qué curvas elípticas y tamaños de clave RSA son compatibles?▼

Soporta curvas NIST (P-256, P-384, P-521), secp256k1, Edwards Ed25519 y claves RSA de 1024, 2048, 3072 y 4096 bits para conversión tanto pública como privada.

¿Por qué mi JWK no contiene el parámetro 'd' al convertir desde un PEM público?▼

Las claves PEM públicas (SPKI) únicamente contienen los componentes públicos ('n' y 'e' en RSA; 'x' e 'y' en EC). El parámetro 'd' corresponde al exponente o escalar privado y solo existe al convertir claves privadas (PKCS#8 o PKCS#1).

Herramientas y utilidades relacionadas

Todas las herramientas →
Guía para desarrolladores: Generador y validador de encabezados HTTP Permissions-Policy (Feature-Policy)Seguridad

Cree y valide encabezados HTTP Permissions-Policy modernos (cámara, geolocalización, micrófono, pagos) con listas de permitidos de origen estrictas.

Abrir herramienta→
Generador de Encabezados HSTS y Validador de PreloadSeguridad

Genere encabezados HTTP Strict-Transport-Security (HSTS) conformes a RFC 6797 con calculadora de max-age, directiva includeSubDomains y verificación de elegibilidad para la lista HSTS Preload de Chrome.

Abrir herramienta→
Guía para Desarrolladores: Generador de Configuración de Seguridad para OpenSSH Server (sshd_config)Seguridad

Genere plantillas seguras y reforzadas de sshd_config para Linux, imponiendo autenticación por clave pública, cifrados AEAD modernos, tiempos de espera estrictos y bloqueo de root.

Abrir herramienta→
Seguridad de Linux y Automatización de InfraestructuraSeguridad

Genere reglas de firewall UFW de Ubuntu, políticas drop por defecto, limitación de velocidad y reenvío de puertos con script bash ejecutable.

Abrir herramienta→
Generador de Reglas de Firewall iptables de Linux y Scripts Shell - Guía de DesarrolloSeguridad

Construya reglas iptables para cadenas INPUT/FORWARD/OUTPUT, inspección con estado, protección anti SYN flood, reenvío NAT y exportación a shell script.

Abrir herramienta→
Guía para Desarrolladores del Generador y Analizador de Registros DNS SPFSeguridad

Cree, valide y optimice registros SPF TXT conformes con RFC 7208 con rangos CIDR IPv4/IPv6, MX, A, mecanismos include y políticas de fallo.

Abrir herramienta→