Conversor JWK
Converta chaves entre PEM e JSON Web Key. Cole uma chave privada PEM no formato PKCS #8, PKCS #1 ou SEC1, uma chave pública ou um certificado para obter seu JWK; ou cole um JWK ou JWKS com até 20 chaves para obter de volta PEM PKCS #8 e SPKI. Há suporte para chaves RSA, EC (P-256, P-384, P-521, secp256k1), Ed25519, Ed448, X25519 e X448, cada uma exibida com seu tipo e a impressão digital RFC 7638.
Perguntas frequentes
Como o conversor sabe em qual direção converter?
Uma entrada que começa com { é lida como JWK ou JWKS e convertida para PEM. Uma entrada que contém uma linha -----BEGIN é lida como PEM e convertida para JWK. Qualquer outro conteúdo é rejeitado, com uma indicação dos formatos esperados.
Quais entradas PEM são aceitas?
Chaves privadas não criptografadas nos formatos PKCS #8 (BEGIN PRIVATE KEY), PKCS #1 (BEGIN RSA PRIVATE KEY) e SEC1 (BEGIN EC PRIVATE KEY); chaves públicas como SPKI (BEGIN PUBLIC KEY) ou PKCS #1 (BEGIN RSA PUBLIC KEY); e certificados X.509, cuja chave pública é convertida. Quando várias seções PEM são coladas, a primeira chave privada tem prioridade; caso contrário, é usada a primeira chave pública ou o primeiro certificado.
O que recebo para uma chave privada?
Uma chave privada PEM gera o JWK privado com todos os seus membros, como d, p, q, dp, dq e qi para RSA, além do JWK público correspondente. Compartilhe apenas o JWK público, pois o privado contém os dados secretos da chave.
Posso converter um JWKS inteiro?
Sim. Cole um documento com um array keys de até 20 chaves, por exemplo, de um endpoint jwks_uri, e cada chave será convertida para PEM com seu índice e kid. JWKs privados, identificados pelo membro d, retornam tanto a chave privada PKCS #8 quanto a chave pública SPKI.
Por que não é possível converter uma chave simétrica?
Chaves com kty oct são bytes secretos simples para HMAC ou AES e não têm representação PEM. Use-as diretamente, por exemplo, no JWT Generator, que aceita um JWK oct como segredo HMAC.
O que faz a opção kid?
Quando ativada, a impressão digital RFC 7638 da chave é adicionada como membro kid do JWK gerado. Isso dá à chave um identificador estável que os verificadores podem comparar com o cabeçalho kid de um JWT.
O que é a impressão digital RFC 7638?
É um hash SHA-256 base64url dos membros públicos obrigatórios da chave, em uma ordem fixa, como e, kty e n para RSA ou crv, kty, x e y para EC. A mesma chave sempre tem a mesma impressão digital, seja armazenada como PEM ou JWK.
Há suporte para chaves criptografadas ou chaves OpenSSH?
Não. É preciso remover primeiro a frase secreta das chaves PEM criptografadas, por exemplo, com openssl pkey -in encrypted.pem -out key.pem. As chaves privadas OpenSSH devem ser convertidas para PEM com ssh-keygen antes de poderem ser lidas aqui.
Quais tipos de chave funcionam?
RSA, EC em P-256, P-384, P-521 e secp256k1, além dos tipos OKP Ed25519, Ed448, X25519 e X448. Chaves DSA e Diffie-Hellman não têm um formato JWK e são rejeitadas com uma explicação.
Minha chave privada é mantida?
Não. A chave é convertida na memória para esta solicitação e nunca é registrada nem salva. Prefira converter chaves públicas on-line e manipule chaves privadas de produção apenas em sistemas sob seu controle.