Conversor JWK ⇄ PEM
Web PKI e Criptografia

Conversor de Chaves JWK para PEM e PEM para JWK (RSA e EC)

Converta chaves JSON Web Key (JWK / JWKS, RFC 7517) para os formatos PEM PKCS#8 / SPKI e transforme chaves PEM públicas e privadas em estruturas JWK.

Privacidade 100% no cliente
Zero transmissão ao servidor
Predefinições:
Entrada da Chave (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 e Especificação
RSA • 2048-bit RSA
Fingerprint RFC 7638
Derived SHA-256
Isolamento no Navegador
Web Crypto sem servidor

Criptografia 100% Isolada no Navegador

Zero transmissão para servidores externos. As suas chaves privadas são processadas unicamente na memória segura do navegador.

Motor Duplo RSA e Curvas Elípticas

Suporte abrangente para RSA (2048/4096 bits), ECDSA (P-256, P-384, P-521), SPKI, PKCS#1 e PKCS#8.

Conformidade com RFC 7517 e RFC 7638

Gera identificadores e impressões digitais SHA-256 segundo a norma RFC 7638 e cria estruturas JWKS padrão.

Referência técnica e guia de arquitetura

Guia do Desenvolvedor: Conversor JWK para PEM e PEM para JWK (Chaves RSA e EC) — Guia de referência

Converta chaves JSON Web Key (JWK / JWKS, RFC 7517) para os formatos PEM PKCS#8 / SPKI e transforme chaves PEM públicas e privadas em estruturas JWK.

Parâmetros principais e controles

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

Identificador da família criptográfica da chave de acordo com a Seção 4.1 da RFC 7517.

Padrão: RSA
crvstring ('P-256' | 'P-384' | 'P-521' | 'secp256k1' | 'Ed25519')

Designação de curva obrigatória para chaves de Curva Elíptica e pares OKP conforme a RFC 7518.

Padrão: P-256
formatstring ('SPKI' | 'PKCS#8' | 'PKCS#1' | 'SEC1')

Estrutura de encapsulamento ASN.1 DER protegida por delimitadores padrão PEM.

Padrão: SPKI / PKCS#8
usestring ('sig' | 'enc')

Finalidade pretendida da chave pública: verificação de assinatura digital ('sig') ou criptografia ('enc').

Padrão: sig
kidstring

Identificador exclusivo de chave utilizado para correspondência em cabeçalhos JWT e endpoints JWKS.

Padrão: UUID/hash opcional

Dicas profissionais e melhores práticas

Cabeçalhos PEM SPKI vs. PKCS#1

A Web Crypto API moderna, o OpenSSL 3.0 e provedores de nuvem exigem o padrão SubjectPublicKeyInfo (SPKI, '-----BEGIN PUBLIC KEY-----'). Cabeçalhos PKCS#1 legados ('-----BEGIN RSA PUBLIC KEY-----') devem ser convertidos em SPKI antes da geração da estrutura JWK.

Conformidade estrita com Base64URL

A RFC 7517 exige codificação Base64URL sem preenchimento '=' e com '-' e '_' no lugar de '+' e '/'. Ao editar parâmetros como o módulo 'n' ou coordenadas 'x'/'y', remova qualquer '=' final para evitar erros de validação em bibliotecas como jose.

Extração em lote de endpoints JWKS

Ao integrar com provedores OpenID Connect (Auth0, Okta, Firebase, AWS Cognito), filtre o array 'keys' em /.well-known/jwks.json pelo atributo 'kid' do token JWT para converter apenas a chave de validação necessária em PEM.

Interoperabilidade segura com PKCS#8

Exporte sempre chaves privadas no formato padronizado PKCS#8 sem criptografia ('-----BEGIN PRIVATE KEY-----') para garantir compatibilidade direta com Node.js crypto, Go crypto/x509 e Python cryptography.

Problemas comuns e solução de problemas

Erro: Tipo de chave não suportado ou cabeçalho PEM desconhecido

Certifique-se de que o bloco PEM comece com delimitadores válidos como '-----BEGIN PUBLIC KEY-----' (SPKI) ou '-----BEGIN PRIVATE KEY-----' (PKCS#8). Remova espaços em branco adicionais ou quebras de linha corrompidas.

Falha na validação de assinatura com chave JWK importada (RS256 / ES256)

Verifique se a curva ('crv') corresponde ao algoritmo de assinatura do JWT (por exemplo, ES256 exige P-256; ES384 exige P-384). Certifique-se de que os valores 'x' e 'y' possuam preenchimento com zeros à esquerda equivalente ao tamanho da curva.

Erro ao processar chave privada PEM protegida por senha

Chaves que iniciam com '-----BEGIN ENCRYPTED PRIVATE KEY-----' contêm criptografia baseada em senha. Descriptografe a chave previamente via OpenSSL ('openssl pkcs8 -topk8 -nocrypt -in chave_enc.pem -out chave.pem') antes de importá-la para JWK.

Perguntas frequentes (FAQ)

Qual é a principal diferença entre os formatos JWK e PEM?▼

O formato JWK (RFC 7517) armazena chaves criptográficas como objetos JSON com valores em Base64URL, sendo ideal para APIs web modernas e tokens JWT. Já o formato PEM (RFC 7468) encapsula dados binários ASN.1 DER em blocos de texto Base64 com cabeçalhos ASCII, amplamente utilizado em certificados TLS e no OpenSSL.

É possível converter conjuntos JWKS inteiros do Auth0 ou Google para PEM?▼

Sim. Cole o JSON completo do JWKS contendo o array 'keys'. O conversor processa cada chave de forma individual e gera as chaves públicas PEM SPKI correspondentes mantendo os Key IDs originais.

É seguro converter chaves privadas confidenciais nesta ferramenta?▼

Sim, 100% seguro. Toda a análise ASN.1, decodificação Base64URL e processamento criptográfico acontecem exclusivamente na memória do navegador via Web Cryptography API. Nenhum dado de chave privada é enviado para servidores externos.

Quais curvas elípticas e tamanhos de chave RSA são suportados?▼

A ferramenta oferece suporte para as curvas NIST (P-256, P-384, P-521), secp256k1, Ed25519 e chaves RSA de 1024, 2048, 3072 e 4096 bits para conversões públicas e privadas.

Por que meu JWK não inclui o parâmetro 'd' ao converter de um PEM público?▼

Chaves PEM públicas (SPKI) armazenam exclusivamente componentes públicos ('n' e 'e' para RSA; 'x' e 'y' para EC). O parâmetro 'd' representa o expoente ou escalar privado e só é gerado na conversão de chaves privadas (PKCS#8 ou PKCS#1).

Ferramentas e utilitários relacionados

Todas as ferramentas →
Guia do Desenvolvedor: Gerador e Testador de Cabeçalhos HTTP Permissions-Policy (Feature-Policy)Segurança

Crie e valide cabeçalhos de resposta HTTP Permissions-Policy modernos (câmera, geolocalização, microfone, pagamentos) com listas de permissões de origem rigorosas.

Abrir ferramenta→
Gerador de Cabeçalhos HSTS e Validador de PreloadSegurança

Gere cabeçalhos HTTP Strict-Transport-Security (HSTS) em conformidade com a RFC 6797, com calculadora de max-age, diretiva includeSubDomains e verificação para inclusão na lista Chrome HSTS Preload.

Abrir ferramenta→
Guia do Desenvolvedor: Gerador de Configuração de Endurecimento (Hardening) do OpenSSH (sshd_config)Segurança

Crie arquivos de configuração sshd_config reforçados para produção no Linux, exigindo autenticação por chave pública, cifras AEAD modernas, timeouts rigorosos e bloqueio de root.

Abrir ferramenta→
Ufw Rules Generator Referência para DesenvolvedoresSegurança

Utilitário para desenvolvedores de ufw-rules-generator.

Abrir ferramenta→
Gerador de Regras de Firewall iptables do Linux e Scripts ShellSegurança

Construa regras iptables para cadeias INPUT/FORWARD/OUTPUT, inspeção de estado conntrack, proteção contra SYN flood, redirecionamento NAT e exportação de scripts shell.

Abrir ferramenta→
Guia do Desenvolvedor: Gerador e Analisador de Registros DNS SPFSegurança

Crie e valide registros SPF TXT em total conformidade com a RFC 7208, abrangendo blocos CIDR IPv4/IPv6, MX, A, mecanismos include e políticas SoftFail/HardFail.

Abrir ferramenta→