Criando KeyStore
A KeyStore é uma maneira que o Java oferece para proteger e encapsular certificados digitais. Dentro de uma KeyStore é possível armazenar não só um certificado, mas cadeias de certificados completas conforme a necessidade.
O BISERP usa KeyStore para encapsular os certificados digitais dos WebServices da NFp e NFe por exemplo. A partir dos certificados encapsulados dentro da KeyStore é possível dizer ao Java que esses certificados são confiáveis que podemos aceitar a comunicação com o servidor que se identificar através destes certificados.
Criando uma KeyStore
Antes de mais nada, para criar uma KeyStore é preciso ter o certificado digital e o java instalado. Para criar a keystore devemos utilizar o utilitário keytool, presente na pasta bin do Java. Como mostra o templo abaixo:
keytool -import -alias <alias> -keystore <keystore> x:\nfpkeystore.jks -file <certificado>
O comando deve ser completado da seguinte forma:
- <alias>: Alias é o nome que este certificado receberá dentro do keystore. Quando o conteúdo da keystore for apresentado, esse alias será mostrado para identificar este certificado (dentre os outros que houver dentro da KeyStore.
- <keystore>: Arquivo da keystore em que queremos importar o certificado. Se o arquivo já existir, este certificado será incorporado aos que já existem dentro da keystore, se o arquivo não existir, será criada uma nova keystore com apenas este certificado. Podendo mais tarde usar a mesma keystore para somar outros certificados.
- <certificado>: Certificado a ser importado para dentro da KeyStore. Arquivo ".cer"
Um exemplo de criação de KeyStore usado durante o desenvolvimento do WebService da NFp é:
keytool -import -alias NFp.SP -keystore x:\nfpkeystore.jks -file x:\nfp.fazenda.sp.gov.br.cer
Sendo que o certificado foi obtido através do endereço do web (como webservices, email, ou outros endereços https: veja Obtendo Certificado a Partir de Endereço HTTPS) e esta keystore é usada para a configuração de conexão SSL, como certificado de CA confiável. Caso contrário o Java não permite que a conexão seja realizada.
Ao confirmar a linha de comando acima a será solicitada uma senha. Se o arquivo estiver sendo criado, será solicitado uma senha de confirmação antes de criar a KeyStore. Caso o arquivo já exista, ela será validada para ter acesso a KeyStore existente. Depois de processar e exibir as informações do certificado na tela, será necessário digitar "sim" para prosseguir e confirmar a operação.
Feito isso a KeyStore está pronta para ser usada na aplicação Java!
![]() |
|
Inspecionando uma KeyStore
Para visualizar o conteúdo de uma KeyStore é pode-se utilizar o seguinte comando:
keytool -keystore <keystore> -list
Para uma descrição detalhada dos certificados utilize o comando:
keytool -keystore <keystore> -list -v
Para mais detalhes consulte a ajuda do comando list do keytool:
keytool -list -help
Excluindo Certificados da KeyStore
Para remover um certificado da KeyStore é necessário conhecer o alias com a qual ele foi salvo. Você pode listar os certificados existentes com os comandos acima.
Para excluir o alias desejado utilize o comando:
keytool -keystore <keystore> -delete -alias <alias>
Obtendo Certificado a Partir de Endereço HTTPS
Obter certificados a partir de endereços HTTPS é útil quando precisamos confirmar para nossa aplicação que determinada CA é confiável e permitir que o Java negocie uma conexão SSL com o servidor. Um dos casos em que uma conexão HTTPS é muito utilizada em aplicação é o acesso de WebServices. Como no exemplo que seguiremos, do WebService da Receita da Fazenda de SP.
O primeiro passo é entrar através de um Browser (aqui utilizaremos o Chrome, outros browser podem mostrar o certificado de outra forma) no endereço HTTPS desejado. O browser deve mostrar um cadeado para confirmar que o site está protegido por algum tipo de encriptação, clique no cadeado para maiores informações. No nosso exemplo, podemos ver que quem certifica o servidor da fazenda de SP é a VeriSign.

![]() |
|
Clique em "Informações do Certificado" para abrir a tela de detalhes certificado, como exibida abaixo:


Com a tela aberta, clique na aba "Detalhes" e depois no botão "Copiar para Arquivo" para que o certificado seja exportado para um arquivo. No Wizard que aparece, siga as instruções das imagens abaixo:




se tudo correu bem o certificado foi exportado com sucesso para a pasta escolhida. Se clicar duas vezes no arquivo, o certificado deve mostrar a mesma tela que o browser mostrou quando solicitamos mais informações. Esse arquivo poderá agora ser usado para compor uma KeyStore e ser utilizado na aplicação Java.