Gerador de chaves RSA
Gere um novo par de chaves RSA com um módulo de 2048 ou 3072 bits e o expoente público 65537. Você recebe a chave privada como PEM PKCS #8 sem criptografia, a chave pública como PEM SPKI, a linha ssh-rsa OpenSSH correspondente com sua impressão digital SHA-256, os algoritmos RS e PS que ela assina e a impressão digital JWK da RFC 7638 para usar como ID da chave. Cada par é criado com o módulo crypto do Node para esta solicitação e nunca é armazenado.
Perguntas frequentes
Devo escolher 2048 ou 3072 bits?
O RSA de 2048 bits ainda é o mínimo mais comum e é aceito em todos os lugares, inclusive por bibliotecas JWT que recusam chaves menores. 3072 bits corresponde ao nível de segurança de 128 bits recomendado pela NIST SP 800-57 para além de 2030, ao custo de assinaturas maiores e assinatura mais lenta. Tamanhos maiores, como 4096 bits, não são oferecidos, pois o tempo de geração é imprevisível em um servidor compartilhado.
Quais formatos o resultado usa?
A chave privada é codificada em PEM PKCS #8 (BEGIN PRIVATE KEY), e a chave pública, em PEM SubjectPublicKeyInfo (BEGIN PUBLIC KEY). Ambas podem ser lidas pelo OpenSSL, Java, .NET, Go, Node, jose e pela maioria das outras bibliotecas. A linha de chave pública OpenSSH é incluída para arquivos authorized_keys.
A chave privada é criptografada?
Não, a chave privada é fornecida sem uma frase secreta para que possa ser colada diretamente em outras ferramentas. Para protegê-la quando estiver armazenada, execute openssl pkey -in key.pem -aes256 -out key-encrypted.pem e guarde apenas o arquivo criptografado. Mantenha a cópia sem criptografia fora do controle de versão.
Como obtenho o formato PKCS #1 (BEGIN RSA PRIVATE KEY)?
Alguns softwares mais antigos esperam o formato PKCS #1 tradicional. Com OpenSSL 3, execute openssl pkey -in key.pem -traditional -out key-rsa.pem para converter o arquivo PKCS #8. O material da chave é o mesmo; apenas o encapsulamento muda.
Posso usar a chave para SSH?
Sim. Coloque a linha ssh-rsa em ~/.ssh/authorized_keys no servidor e salve o PEM privado como arquivo de identidade com permissões 600, pois o OpenSSH lê chaves RSA codificadas em PEM. Muitos servidores agora preferem chaves Ed25519, que o Ed25519 Key Generator cria.
O que é a impressão digital JWK?
É o hash SHA-256 da RFC 7638 dos membros JWK obrigatórios da chave pública, codificado em base64url. Ele identifica a chave independentemente do formato, o que faz dele um bom valor de kid para tokens JWT e documentos JWKS. O JWK Converter exibe o mesmo valor para esta chave.
Quais algoritmos JWT esta chave pode assinar?
Uma chave RSA pode assinar RS256, RS384 e RS512 (PKCS #1 v1.5) e PS256, PS384 e PS512 (RSA-PSS). Use o PEM privado com o Generator JWT e forneça aos verificadores o PEM público ou sua JWK. O algoritmo é uma propriedade da assinatura, portanto uma chave pode ser usada para vários deles.
A chave gerada é armazenada em algum lugar?
Não. O par de chaves é criado na memória para sua solicitação, retornado uma única vez no resultado e nunca é registrado nem salvo. Se você o perder, gere um novo par, pois ninguém poderá recuperá-lo para você.
O que faz a opção de comentário?
O comentário é acrescentado à linha da chave pública OpenSSH, normalmente user@host ou um rótulo como deploy-2026, para que você possa reconhecer a chave em authorized_keys. Ele não altera a chave nem suas impressões digitais. Os comentários têm limite de 200 caracteres, e os espaços em branco são reduzidos a espaços simples.
Quão aleatórias são as chaves?
Os números primos vêm do gerador de números aleatórios criptograficamente seguro do sistema operacional, por meio do OpenSSL, a mesma fonte que os servidores usam para suas próprias chaves. Cada solicitação produz um novo par de chaves independente. O expoente público é sempre 65537, o valor padrão.