Subscribe to RSS Feed

Nota Fiscal Eletrônica – Como criar o keystore

12 de março de 2010 Por Márcio Saeger

Quando estamos desenvolvendo o módulo de NFe, a maior dificuldade que os usuários encontram é a criação do arquivo keystore.
A Softwell liberou um conjunto de funções “facilitadoras” de Nota Fiscal Eletrônica apesar de não dar suporte – o que faz sentido, pois não óferece suporte a regras de negócio – nós desenvolvedores encontramos muitas dificuldades na hora da realização do envio das notas.

Basicamente, para o envio de notas fiscais, precisamos apenas das funcoes:
-Chamar serviço WEB com Certificado Digital (Consumo de WebServices seguros)
-Assinar XML (Para assinar os arquivos XML que são enviados)
-Instalar certificado para comunicação HTTPS

Os parâmetros de entrada da função “Chamar serviço WEB com certificado digital” requer um arquivo keystore e sua senha.
Mas afinal, o que é este arquivo e do que ele é composto?

O arquivo keystore funciona como um arquivo banco de dados que contém os certificados que estarão envolvidos na comunicação com a Sefaz. Quem são os envolvidos?
1) A empresa que está enviando a nota
2) A autoridade certificadora (Quem emitiu o certificado da empresa (Ex: Serasa))
3) O Servidor da SEFAZ

Então precisamos basicamente de 3 certificados dentro do keystore: Da empresa, da autoridade certificadora e do servidor da sefaz.
Os certificados que devem ser importados no arquivo keystore devem estar no padrão DER encoded binary X.509 (Extensão .CER).

Para obter o certificado de sua empresa  e da autoridade certificadora no formato .CER:
-Você deve possuir o arquivo .PFX (Certificado digital da sua empresa). Possuindo este arquivo, dê um duplo-clique para importa-lo no sistema operacional. Basta dar “Next Next Next” e preencher a senha quando necessário. Após isto, o certificado estará disponível no Internet Explorer. (Caso seja solicitada a senha do seu arquivo .PFX, preencha-o.)
-Agora que o arquivo .PFX está importado, vamos gerar o certificado no formato .CER, abra o Internet Explorer, vá em Ferramentas -> Opções da Internet. Vá a aba “Conteúdo”. Clique no botão “Certificados”.
Observe que estará disponível na aba “Personal” o certificado de sua empresa. Selecione ela e clique no botão “Export…” e então dê “Next Next Next”. Guarde o arquivo .CER num diretório qualquer mas lembre-se dele, pois utilizaremos novamente. Para este exemplo, considerarei o diretório C:/
-O certificado da autoridade certificadora está disponível nesta mesma tela de certificados, entretanto, na aba de “Intermediate Certification Authorities”. No caso do serasa, são 2 certificados. Exporte os 2 e salve no mesmo diretório

Para obter o certificado do servidor da sefaz no formato .CER:
-Acesse a URL do webservice (utilizando o IE) de recepcao de notas fiscais  referente ao estado onde serão enviadas as notas. (Lembre-se que empresas apenas enviam notas para o seu estado).
-Após acessar, existe um “cadeado” indicando que é um site seguro. Dê um duplo-clique nele e exporte o certificado do site. Novamente escolha o formato .CER e salve em um diretório qualquer do seu computador.

Agora que você já possui os certificados, você já está preparado para criar o seu arquivo .keystore
Para geração deste arquivos utilizaremos a ferramenta KeyTool (É uma ferramenta gratuita disponível em qualquer JDK).
Você pode inclusive utilizar a JDK que é instalada junto com o Webrun no diretório:
C:\Arquivos de Programas\Softwell Solutions\Maker 2.5\Webrun 2\java\bin\keytool.exe
Abra o promt de comando e se dirija até o diretório acima (bin).
Vamos primeiramente criar o arquivo keystore. Para isto, digite o comando:
keytool.exe -genkey -keystore nome.keystore -alias nomeDoProjeto -keypass senha
Ex: C:\Program Files (x86)\Softwell Solutions\Maker 2.5\Webrun 2\java\bin>keytool.ex
e -genkey -keystore certificado.keystore -alias nfe -keypass teste123

Após isto, serão feitas algumas perguntas, preencha de acordo com os dados de sua empresa. Exemplo:

Enter keystore password:  teste123
What is your first and last name?
[Unknown]:  Márcio Saeger
What is the name of your organizational unit?
[Unknown]:  MakerPortal Informática Ltda
What is the name of your organization?
[Unknown]:  MakerPortal Informática Ltda
What is the name of your City or Locality?
[Unknown]:  Salvador
What is the name of your State or Province?
[Unknown]:  Bahia
What is the two-letter country code for this unit?
[Unknown]:  BR
Is CN=Márcio Saeger, OU=MakerPortal Informática Ltda, O=MakerPortal Informática
Ltda, L=Salvador, ST=Bahia, C=BR correct?
[no]:  yes
C:\Program Files (x86)\Softwell Solutions\Maker 2.5\Webrun 2\java\bin>

Pronto. Seu arquivo .keystore está criado. O arquivo foi gerado no diretório do keytool. Copie-o para o diretório C:/ onde estão os arquivos de certificados .CER para facilitar na importação.
Agora devemos importar os certificados (.cer) no arquivo keystore. Vamos fazer através do comando:
keytool.exe -import -trustcacerts -alias nome -file C:\certificado1.cer -keystore c:\certificado.keystore

Observe que: após o parâmetro -alias devemos especificar um nome para o certificado que estamos importanto. Apenas tenha certeza de colocar um nome diferente para cada arquivo .CER que você for importar. Para ser franco, o nome que voce irá escolher pouco importa. No meu caso importo com nomes: c1, c2, c3 etc..

Exemplo de uso do comando:
keytool.exe -import -trustcacerts -alias serasa1 -file C:\serasaV1.cer -keystore C:\certs.keystore
keytool.exe -import -trustcacerts -alias serasa2 -file C:\serasaV2.cer -keystore C:\certs.keystore
keytool.exe -import -trustcacerts -alias sefazServer -file C:\sefazServer.cer -keystore C:\certs.keystore
keytool.exe -import -trustcacerts -alias makerportal -file C:\makerportal.cer -keystore C:\certs.keystore

Ao efetuar cada importação, poderá ser exibido um resumo sobre o certificado no console e perguntado se você tem certeza que gostaria de improtar tal certificado para o arquivo keystore. Basta apenas confirmar, digitando yes.
Ao termino da importação dos certificados, seu arquivo já está pronto para ser utilizado nos WebServices da Sefaz. Basta informar como parâmetro de entrada da função o caminho do arquivo .keystore e sua senha. :)
PS: Não esqueça de previamente instalar o certificado .keystore no browser através da função “Instalar certificado para comunicação HTTPS”. Este passo só é necessário apenas uma única vez por browser.

Espero ter desmistificado um pouco quanto ao arquivo keystore. Este é apenas um único detalhe da imensidão de um sistema de Nota Fiscal Eletrônica ;)

Dúvidas!? Utilize o nosso fórum!

Tags: , , , , , , ,

3 Responses a “Nota Fiscal Eletrônica – Como criar o keystore”

  1. Tulio
    12/03/2010 às 18:52

    Muito bom. Otimo post.
    Com certeza ajuda aqueles que chegam nesse ponto e sempre tem que ficar garimpando informações.
    T+

  2. Rodrigo Donizete Siqueira
    30/03/2010 às 15:13

    Excelente post, estava muito confuso em relação ao uso dos certificados nas funções(NFe) do Maker. Valeu…

  3. Marcos Sao paulo
    04/05/2010 às 10:52

    CARA…. vc salvo vinha vida, Serio, Te amo

Deixe uma Resposta