17 exemplos de comandos Keytool para saber como administrador de sistemas e desenvolvedor

Keytool é um utilitário de linha de comando que permite gerenciar/armazenar chaves criptográficas e certificados.

Se o seu sistema tiver Java instalado, você pode usar o comando keytool para importar um certificado CA, listar certificados, criar certificados autoassinados, armazenar senhas e chaves públicas/privadas e fazer muito mais coisas.

Confuso? Não se preocupe; Vou explicar em termos mais simples enquanto você lê.

Observe que eu uso o Linux para testar os comandos e explico um pouco mais sobre isso com exemplos.

Você também pode usar os comandos do Keytool no Windows e no macOS.

O que é um comando Keytool?

É um utilitário de gerenciamento de chaves e certificados. Ele permite que você armazene pares de chaves públicas/privadas, que geralmente servem para verificar/autenticar o acesso aos serviços.

Considerando o título deste artigo, pode-se supor que o comando seja utilizado principalmente por administradores de sistema e desenvolvedores.

Na maioria das vezes, sim, mas um usuário pode ser criativo com o comando keytool para armazenar senhas e chaves secretas para fins de autenticação, criptografia e descriptografia. Então, se você está curioso, você deve experimentá-lo em seu sistema.

  Como instalar o MySQL Workbench no Ubuntu

Se você é novo no conceito de chaves criptográficas, talvez queira conferir nosso artigo sobre criptografia de dados antes de tentar os comandos keytool.

Além disso, verificar os exemplos de comandos do OpenSSL também pode lhe dar uma ideia de como ele é diferente e o que você pode fazer com qualquer um deles.

Criar um certificado autoassinado

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

Ao contrário de um certificado SSL que você compra, um certificado autoassinado é usado apenas para fins de desenvolvimento/teste para usar uma conexão segura.

Você pode gerar um usando a sintaxe de comando keytool mencionada acima. Por exemplo, aqui está o que parece:

keytool -genkeypair -alias etechpt.com -keypass passforkeystore -validity 365 -storepass passforkeystore

Você pode usar qualquer nome para o alias; Eu uso etechpt.com como um texto de espaço reservado. Você pode personalizar a validade e especificar uma senha para o Keystore substituindo “passforkeystore” no comando acima.

Observe que apenas uma senha é suportada para KeyStores PKCS12. No entanto, é um tipo de Keystore conveniente que não é específico de Java.

Se você precisar de duas senhas diferentes para seu Keystore e o certificado, convém informar explicitamente ao comando keytool para usar outra interface.

Você pode ler mais sobre isso em sua documentação oficial.

Depois de prosseguir com a criação, ele solicitará detalhes adicionais para autenticidade. Aqui está como deve ser:

What is your first and last name?
  [Unknown]:  Ankush
What is the name of your organizational unit?
  [Unknown]:  etechpt.com
What is the name of your organization?
  [Unknown]:  etechpt.com
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=etechpt.com, O=etechpt.com, L=Bhubaneswar, ST=Odisha, C=91 correct?
  [no]:  yes

Crie um repositório de chaves Java e um par de chaves

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

Gere um Java Keystore e importe um certificado

Certifique-se de ter um certificado válido ou de ter gerado um anteriormente; uma vez feito, você pode importá-lo e gerar um Java Keystore.

keytool -importcert -file test.crt -keystore truststore.jks -alias etechpt.com

Gere um par de chaves para o keystore padrão com assunto

Você pode gerar rapidamente um par de chaves (digamos com o nome “ca”) usando o seguinte comando:

keytool -alias ca -dname CN=CA -genkeypair

Crie uma cadeia de certificados assinados

Suponha que você tenha criado pares de chaves ca e ca1. Você pode criar uma cadeia de certificados assinados onde ca assinará ca1 com os seguintes comandos:

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

Você pode completar a cadeia com mais dois pares de chaves ca1 e ca2, onde ca1 assinará ca2.

  Como corrigir não é possível baixar arquivos de patch FFXIV

Importando um certificado

Se você deseja importar um certificado de um arquivo disponível, veja o que pode fazer:

keystool -import -alias etechpt.com -file geekflareserver.cer

Crie uma solicitação de assinatura de certificado (CSR) para o keystore existente

Considerando que você já criou um Keystore, você pode gerar um CSR.

keytool -certreq -keyalg rsa -keystore keystore.jks -alias server -file etechpt.com.csr

Listar certificados armazenados no Java Keystore

Um keystore pode ter várias entradas de certificados. Supondo que estamos verificando a lista de certificados no banco de dados “keystore.jks”, eis o que precisamos digitar:

keytool -v -list -keystore keystore.jks

A saída para isso ficará assim:

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=etechpt.com, L=Bhubaneswar, ST=od, C=91
Issuer: CN=Ankush, OU=Geek, O=etechpt.com, 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

Verifique o conteúdo de um único certificado

Considerando que você já possui um certificado gerado, você pode verificar mais sobre ele usando o seguinte:

keytool -v -printcert -file server.crt

Exibir certificados em um armazenamento de chave Java

Você pode listar todos os certificados de um banco de dados Keystore. Aqui está a aparência do comando:

keytool -v -list -keystore keystore.jks

Exibir armazenamento de chave usando um alias e armazenamento de chave

Se você quiser verificar um Keystore usando seu nome de alias que você definiu ao criá-lo, digite o seguinte:

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

Listar certificados no KeyStore

Se você deseja verificar os certificados armazenados no Keystore padrão, use o comando:

keytool -list -storepass passforkeystore

Você precisa substituir “passforkeystore” pela senha que você definiu.

  Como mover guias do Safari entre iPhone, iPad e Mac

Exibir informações do certificado

Se precisar verificar os detalhes de um único certificado, você pode usar seu alias sem especificar o banco de dados keystone.

Veja como fica:

keytool -list -v -alias etechpt.com -storepass passforkeystore

Exibir certificado no formato PEM

PEM é um dos formatos mais comuns para certificados e chaves criptográficas. Se você deseja verificar um certificado com PEM, digite o seguinte:

keytool -v -printcert -file etechpt.com.crt -rfc

Alterar uma senha do Java Keystore

Se você já criou uma senha para o Java Keystore, pode alterá-la usando o comando:

keytool -delete -alias etechpt.com -keystore keystore.jks

Excluir um certificado do Java Keystore

Você pode especificar o Java Keystore e seu alias para excluí-lo. Por exemplo:

keytool -delete -alias etechpt.com -keystore keystore.jks

Explore o comando e obtenha ajuda

O comando tem vários argumentos e extensões para fazer muitas coisas. Dependendo do seu caso de uso, você pode ou não precisar usar todos eles.

Portanto, se você quiser se aprofundar nas opções de comando, sempre poderá digitar:

keytool -help

Em ambos os casos, se você estiver usando um terminal Linux, recomendo ler a página man (manual) com este comando:

man keytool

Com o comando man, você pode obter todos os detalhes necessários sobre o comando keytool.

Portanto, mantenha seu superpoder para aprender tudo o que puder sobre isso!

Empacotando

O caminho dos arquivos e outras opções de personalização podem ser um pouco diferentes da plataforma que você usa. Você também pode consultar a documentação da Oracle para as opções padronizadas.

Keytool é uma excelente ferramenta para uma variedade de tarefas. Teste-o e veja o que você pode fazer com ele!

Você também pode explorar alguns comandos do Linux para manter e manter os sistemas funcionando de maneira ideal.