17 ejemplos de comandos de Keytool para saber como administrador de sistemas y desarrollador

Keytool es una utilidad de línea de comandos que le permite administrar/almacenar certificados y claves criptográficas.

Si su sistema tiene instalado Java, puede usar el comando keytool para importar un certificado de CA, enumerar certificados, crear certificados autofirmados, almacenar frases de contraseña y claves públicas/privadas, y hacer muchas más cosas.

¿Confundido? No temas; Lo explicaré en términos más simples a medida que lea.

Tenga en cuenta que uso Linux para probar los comandos y explicarle un poco más con ejemplos.

También puede usar los comandos de Keytool en Windows y macOS.

¿Qué es un comando Keytool?

Es una utilidad de gestión de claves y certificados. Le permite almacenar pares de claves privadas/públicas, que generalmente son para verificar/autenticar el acceso a los servicios.

Teniendo en cuenta el título de este artículo, se puede suponer que el comando es utilizado principalmente por administradores de sistemas y desarrolladores.

En su mayor parte, sí, pero un usuario puede ser creativo con el comando keytool para almacenar frases de contraseña y claves secretas con fines de autenticación, cifrado y descifrado. Entonces, si tiene curiosidad, debería probarlo en su sistema.

Si es nuevo en el concepto de claves criptográficas, puede consultar nuestro artículo sobre el cifrado de datos antes de probar los comandos de keytool.

Además, consultar los ejemplos de comandos de OpenSSL también puede darle una idea de cómo es diferente y qué puede hacer con cualquiera de ellos.

Crear un certificado autofirmado

keytool -genkeypair -alias <alias> -keypass <keypass> -validity <validity> -storepass <storepass>

A diferencia de un certificado SSL que compra, un certificado autofirmado solo se usa con fines de desarrollo/prueba para usar una conexión segura.

Puede generar uno usando la sintaxis del comando keytool mencionada anteriormente. Por ejemplo, esto es lo que parece:

keytool -genkeypair -alias kirukiru.es -keypass passforkeystore -validity 365 -storepass passforkeystore

Puede usar cualquier nombre para el alias; Uso kirukiru.es como texto de marcador de posición. Puede personalizar la validez y especificar una contraseña para Keystore reemplazando «passforkeystore» en el comando anterior.

Tenga en cuenta que solo se admite una contraseña para los almacenes de claves PKCS12. Sin embargo, es un tipo de Keystore conveniente que no es específico de Java.

Si necesita dos contraseñas diferentes para su Keystore y el certificado, es posible que desee decirle explícitamente al comando keytool que use otra interfaz.

Puedes leer más al respecto en su documentación oficial.

Una vez que continúe con la creación, le pedirá detalles adicionales de autenticidad. Así es como debería verse:

What is your first and last name?
  [Unknown]:  Ankush
What is the name of your organizational unit?
  [Unknown]:  kirukiru.es
What is the name of your organization?
  [Unknown]:  kirukiru.es
What is the name of your City or Locality?
  [Unknown]:  Bhubaneswar
What is the name of your State or Province?
  [Unknown]:  Odisha
What is the two-letter country code for this unit?
  [Unknown]:  91
Is CN=Ankush, OU=kirukiru.es, O=kirukiru.es, L=Bhubaneswar, ST=Odisha, C=91 correct?
  [no]:  yes

Crear un almacén de claves Java y un par de claves

keytool -genkeypair -keyalg RSA -keysize 2048 -keystore keystore.jks -alias geekflarejava -validity 3650

Genere un almacén de claves de Java e importe un certificado

Asegúrese de tener un certificado válido o haber generado uno anteriormente; una vez hecho esto, puede importarlo y generar un Java Keystore.

keytool -importcert -file test.crt -keystore truststore.jks -alias kirukiru.es

Genere un par de claves para el almacén de claves predeterminado con asunto

Puede generar rápidamente un par de claves (por ejemplo, con el nombre «ca») usando el siguiente comando:

keytool -alias ca -dname CN=CA -genkeypair

Crear una cadena de certificados firmados

Suponga que ha creado pares de claves de ca y ca1. Puede crear una cadena de certificados firmados donde ca firmará ca1 con los siguientes comandos:

keytool -alias ca1 -certreq
keytool -alias ca -gencert -ext san=dns:ca1
keytool -alias ca1 -importcert

Puede completar la cadena con dos pares de claves más, ca1 y ca2, donde ca1 firmará ca2.

Importación de un certificado

Si desea importar un certificado desde un archivo disponible, esto es lo que puede hacer:

keystool -import -alias kirukiru.es -file geekflareserver.cer

Crear una solicitud de firma de certificado (CSR) para el almacén de claves existente

Teniendo en cuenta que ya creó un almacén de claves, puede generar una CSR.

keytool -certreq -keyalg rsa -keystore keystore.jks -alias server -file kirukiru.es.csr

Lista de certificados almacenados en Java Keystore

Un almacén de claves puede tener varias entradas de certificados. Suponiendo que estamos revisando la lista de certificados en la base de datos «keystore.jks», esto es lo que debemos escribir:

keytool -v -list -keystore keystore.jks

La salida para esto se verá así:

keytool -v -list -keystore keystore.jks
Enter keystore password:  
Keystore type: PKCS12
Keystore provider: SUN

Your keystore contains 2 entries

Alias name: geekflarecert
Creation date: 16-Nov-2022
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Ankush, OU=Geek, O=kirukiru.es, L=Bhubaneswar, ST=od, C=91
Issuer: CN=Ankush, OU=Geek, O=kirukiru.es, L=Bhubaneswar, ST=od, C=91
Serial number: a0b9a99
Valid from: Wed Nov 16 09:42:37 IST 2022 until: Sat Nov 13 09:42:37 IST 2032
Certificate fingerprints:
	 SHA1: 23:7C:65:A7:A6:84:18:F8:45:04:92:DF:D4:BB:0F:91:6D:A5:C5:BE
	 SHA256: C0:25:ED:B8:CF:1A:E6:E1:C5:75:A8:10:8F:CD:BE:42:26:96:9C:9A:FA:74:65:07:71:06:9A:2C:F5:80:FE:7F
Signature algorithm name: SHA256withRSA
Subject Public Key Algorithm: 2048-bit RSA key
Version: 3

Consultar el contenido de un certificado único

Teniendo en cuenta que ya tiene un certificado generado, puede consultar más sobre él usando lo siguiente:

keytool -v -printcert -file server.crt

Ver certificados en un almacén de claves de Java

Puede enumerar todos los certificados de una base de datos de almacén de claves. Así es como se ve el comando:

keytool -v -list -keystore keystore.jks

Ver almacén de claves mediante un alias y un almacén de claves

Si desea verificar un Keystore usando el nombre de alias que configuró al crearlo, escriba lo siguiente:

keytool -v -list -keystore keystore.jks -alias geekflareserver

Listar certificados en KeyStore

Si desea verificar los certificados almacenados en el almacén de claves predeterminado, use el comando:

keytool -list -storepass passforkeystore

Debe reemplazar «passforkeystore» con la contraseña que ha establecido.

Ver información del certificado

Si necesita verificar los detalles de un solo certificado, puede usar su alias sin especificar la base de datos trapezoidal.

Así es como se ve:

keytool -list -v -alias kirukiru.es -storepass passforkeystore

Ver certificado en formato PEM

PEM es uno de los formatos más comunes para certificados y claves criptográficas. Si desea comprobar un certificado con PEM, escriba lo siguiente:

keytool -v -printcert -file kirukiru.es.crt -rfc

Cambiar una contraseña del almacén de claves de Java

Si ya ha creado una contraseña para Java Keystore, puede cambiar la contraseña con el comando:

keytool -delete -alias kirukiru.es -keystore keystore.jks

Eliminar un certificado del almacén de claves de Java

Puede especificar el almacén de claves de Java y su alias para eliminarlo. Por ejemplo:

keytool -delete -alias kirukiru.es -keystore keystore.jks

Explore el comando y obtenga ayuda

El comando tiene varios argumentos y extensiones para hacer muchas cosas. Dependiendo de su caso de uso, es posible que necesite o no utilizarlos todos.

Entonces, si desea profundizar en las opciones de comando, siempre puede escribir:

keytool -help

En cualquier caso, si está utilizando una terminal de Linux, recomendaría leer la página man (manual) con este comando:

man keytool

Con el comando man, puede obtener todos los detalles que necesita sobre el comando keytool.

¡Entonces, mantén tu superpoder para aprender todo lo que puedas al respecto!

Terminando

La ruta de los archivos y otras opciones de personalización pueden ser un poco diferentes de la plataforma que utiliza. También puede consultar la documentación de Oracle para conocer las opciones estandarizadas.

Keytool es una excelente herramienta para una variedad de tareas. ¡Pruébelo y vea lo que puede hacer con él!

También puede explorar algunos comandos de Linux para mantener y mantener los sistemas funcionando de manera óptima.