Java, Segurança Digital, Tools

Manutenção em Java Key Stores (JKS) usando o Keytool

Manutenção de Kestores já existentes

Em certas situações é necessário realizar uma manutenção em um keystore já existente no servidor. A manutenção pode ser motivada pela necessidade de importar/exportar uma chave/certitificado de outro ambiente no keystore em questão.

Segue abaixo alguns comandos úteis da ferramenta keytool (fornecida pelo JDK da Sun/Oracle)

Listar o conteúdo de um keystore

Antes de qualquer manutenção no keystore é interessante listar o seu conteúdo.

  • O comando abaixo lista todos os certificados armazenados no keystore (JKS) informado.
keytool -list -keystore server_keystore.jks

A saída do comando deve ser semelhante a apresentada pela listagem abaixo:

 *****************  WARNING WARNING WARNING  *****************                                                                                                                   
 * The integrity of the information stored in your keystore  *
 * has NOT been verified!  In order to verify its integrity, *
 * you must provide your keystore password.                  *
 *****************  WARNING WARNING WARNING  *****************

 Keystore type: JKS
 Keystore provider: SUN

 Your keystore contains 4 entries

 server1.domain.com, Mar 26, 2012, PrivateKeyEntry, 
 Certificate fingerprint (MD5): A7:8B:B7:9A:11:50:CC:98:4C:B5:89:BA:04:3B:CD:AD
 server2.domain.com, Mar 26, 2012, PrivateKeyEntry, 
 Certificate fingerprint (MD5): 2F:A2:50:65:C9:B2:2B:16:C0:2E:10:8A:8C:AB:50:E0
 server3.domain.com, Mar 26, 2012, PrivateKeyEntry, 
 Certificate fingerprint (MD5): 98:CC:AF:88:82:85:07:9A:23:FA:3C:FB:AD:1C:14:62
 server4.domain.com, Mar 26, 2012, PrivateKeyEntry, 
 Certificate fingerprint (MD5): 84:57:8C:40:03:12:F1:56:0B:89:9D:1E:20:E6:48:B5

Exportar um certificado específico

  • No exemplo abaixo o certificado (identificado pelo alias server3.domain.com) armazenado no keystore server_keystore.jks será exportado para o arquivo server3.cer
keytool -export -alias server3.domain.com -keystore server_keystore.jks -file server3.cer

Importar um certificado específico

De posse do certificado exportado no passo anterior basta usar o comando keytool –import para importá-lo em um keystore (JKS) diferente.

  • No exemplo abaixo o certificado (identificado pelo alias server1.domain.com) armazenado no arquivo server1.cer será importado dentro do keystore client_keystore.jks
keytool -import -alias server1.domain.com -file server1.cer -keystore client_keystore.jks

Clonar um certificado específico

Caso seja necessário clonar uma determinada chave/certificado armazenado no keystore basta utilizar o comando keytool -keyclone.

  • No exemplo abaixo o certificado identificado pelo alias server3.domain.com será clonado com um novo alias (clone_server3.domain.com) dentro do keystore server_keystore.jks
keytool -keyclone -alias server3.domain.com -dest clone_server3 -keystore server_keystore.jks

obs:
1) você será questionado quanto a senha que deseja definir para a chave clonada. Caso queira manter a senha da chave original (clonada) confirme com ‘<Enter>’.
2) a opção ‘-keyclone’ funciona apenas para certificados contendo o par de chaves pública/privada. Não é possível clonar (duplciar) chaves públicas.

Excluir um certificado específico

Caso seja necessário excluir uma determinada chave/certificado armazenado no keystore basta utilizar o comando keytool -delete.

  • No exemplo abaixo o certificado identificado pelo alias server1.domain.com será excluído do keystore server_keystore.jks
keytool -delete -alias server1.domain.com -keystore server_keystore.jks

Renomear (altear o alias) um certificado específico

Caso seja necessário renomear (alterar o alias) uma determinada chave/certificado armazenado no keystore basta utilizar o comando keytool -changealias.

  • No exemplo abaixo o certificado identificado pelo alias server1.domain.com será renomeado para o alias serverX no keystore server_keystore.jks
keytool -changealias -alias server1.domain.com -destalias serverX.domain.com -keystore server_keystore.jks
  • para mais detalhes sobre a ferramenta keytool consulte a documentação oficial do JDK disponível em [1]
Anúncios

2 comentários sobre “Manutenção em Java Key Stores (JKS) usando o Keytool

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s