Sobre esta herramienta
JSON Web Key (JWK) es la representación JSON de una clave criptográfica usada por bibliotecas JWT, endpoints JWKS (/.well-known/jwks.json) y muchas APIs web. PEM es el formato de texto más antiguo, envuelto en Base64, que aún usan la mayoría de herramientas criptográficas, servidores y autoridades certificadoras. Esta herramienta convierte entre ambos completamente en tu navegador, usando el mismo motor WebCrypto en el que tu navegador ya confía para TLS.
Elige la dirección, luego el tipo de clave (RSA, o curva elíptica P-256/P-384) y el uso (firma vs. cifrado) que coincida con la clave que estás convirtiendo — WebCrypto necesita esto para saber cómo interpretar los bytes. Las claves públicas se convierten en un JWK sin campo d; los PEM privados/de par de claves (PKCS#8) producen un JWK con n/e/d (RSA) o x/y/d (EC). Solo se admiten claves privadas PKCS#8 sin cifrar y claves públicas SPKI — los PEM PKCS#1 antiguos (RSA PRIVATE KEY) o protegidos con contraseña deben convertirse primero a PKCS#8 (p. ej. con openssl pkcs8).
Preguntas frecuentes
¿Qué es un endpoint JWKS y para qué lo necesitaría?
Un endpoint JWKS (JSON Web Key Set) es una URL (a menudo `/.well-known/jwks.json`) que publica las claves públicas que un proveedor de autenticación (como un proveedor de identidad OAuth/OIDC) usa para firmar JWTs, en formato JWK, para que las partes confiantes puedan obtenerlas y usarlas para verificar firmas de tokens. Si estás configurando tu propio emisor de tokens, convertirías la mitad pública de tu clave de firma a JWK para publicarla ahí.
¿Por qué falla mi conversión con un error de importación?
La causa más común es un selector de tipo de clave o uso no coincidente; por ejemplo, seleccionar "EC P-256" para una clave que en realidad es RSA, o "Cifrado" para una clave generada para firma. WebCrypto valida estrictamente el algoritmo contra el material de clave real, así que verifica que los selectores coincidan con para qué se creó originalmente la clave.