Generador de claves RSA
Genere un nuevo par de claves RSA con un módulo de 2048 o 3072 bits y el exponente público 65537. Obtendrá la clave privada como PEM PKCS #8 sin cifrar, la clave pública como PEM SPKI, la línea ssh-rsa correspondiente de OpenSSH con su huella SHA-256, los algoritmos RS y PS que puede firmar y la huella JWK del RFC 7638 para usar como ID de clave. Cada par se crea con el módulo crypto de Node para esta solicitud y nunca se guarda.
Preguntas frecuentes
¿Debería elegir 2048 o 3072 bits?
RSA de 2048 bits sigue siendo el mínimo habitual y se acepta en todas partes, incluidas las bibliotecas JWT que rechazan claves más pequeñas. 3072 bits equivalen al nivel de seguridad de 128 bits que recomienda NIST SP 800-57 para fechas posteriores a 2030, a costa de firmas más grandes y un firmado más lento. No se ofrecen tamaños mayores, como 4096 bits, porque el tiempo de generación es impredecible en un servidor compartido.
¿Qué formatos usa el resultado?
La clave privada está codificada en PEM PKCS #8 (BEGIN PRIVATE KEY) y la clave pública, en PEM SubjectPublicKeyInfo (BEGIN PUBLIC KEY). OpenSSL, Java, .NET, Go, Node, jose y la mayoría de las demás bibliotecas pueden leer ambas. Se añade la línea de clave pública de OpenSSH para archivos authorized_keys.
¿Está cifrada la clave privada?
No, la clave privada se devuelve sin frase de contraseña para que pueda pegarse directamente en otras herramientas. Para protegerla mientras está almacenada, ejecute openssl pkey -in key.pem -aes256 -out key-encrypted.pem y guarde solo el archivo cifrado. No incluya la copia sin cifrar en el control de versiones.
¿Cómo obtengo el formato PKCS #1 (BEGIN RSA PRIVATE KEY)?
Algunos programas antiguos requieren el formato PKCS #1 tradicional. Con OpenSSL 3, ejecute openssl pkey -in key.pem -traditional -out key-rsa.pem para convertir el archivo PKCS #8. El material de la clave es el mismo; solo cambia el formato contenedor.
¿Puedo usar la clave para SSH?
Sí. Coloque la línea ssh-rsa en ~/.ssh/authorized_keys del servidor y guarde el PEM privado como archivo de identidad con permisos 600, ya que OpenSSH lee claves RSA codificadas en PEM. Muchos servidores ahora prefieren claves Ed25519, que genera el Generador de claves Ed25519.
¿Qué es la huella JWK?
Es el hash SHA-256 del RFC 7638 de los miembros JWK obligatorios de la clave pública, codificado en base64url. Identifica la clave independientemente de su formato, por lo que es un buen valor kid para tokens JWT y documentos JWKS. El Conversor de JWK muestra el mismo valor para esta clave.
¿Qué algoritmos JWT puede firmar esta clave?
Una clave RSA puede firmar con RS256, RS384 y RS512 (PKCS #1 v1.5) y con PS256, PS384 y PS512 (RSA-PSS). Use el PEM privado con el Generador JWT y proporcione a los verificadores el PEM público o su JWK. El algoritmo es una propiedad de la firma, así que una misma clave puede servir para varios.
¿Se guarda en algún lugar la clave generada?
No. El par de claves se crea en memoria para su solicitud, se devuelve una sola vez en el resultado y nunca se registra ni se guarda. Si lo pierde, genere un par nuevo, porque nadie puede recuperarlo por usted.
¿Qué hace la opción de comentario?
El comentario se añade a la línea de clave pública de OpenSSH, normalmente user@host o una etiqueta como deploy-2026, para que pueda reconocer la clave en authorized_keys. No cambia la clave ni sus huellas. Los comentarios tienen un límite de 200 caracteres y los espacios en blanco se reducen a espacios simples.
¿Qué tan aleatorias son las claves?
Los números primos se obtienen del generador de números aleatorios criptográficamente seguro del sistema operativo a través de OpenSSL, la misma fuente que usan los servidores para sus propias claves. Cada solicitud genera un nuevo par de claves independiente. El exponente público siempre es 65537, el valor estándar.