# JKS para armazenamento de certificados

> JKS (Java KeyStore) é um formato de arquivo usado por aplicações Java para guardar, de forma protegida por senha, certificados digitais e chaves privadas. Em sistemas fiscais, serve para armazenar o certificado A1 da empresa, usado para assinar XMLs de NF-e, NFS-e e outros documentos e para se autenticar nos webservices da SEFAZ.

**Também conhecido como:** Java KeyStore, Keystore Java, Arquivo .jks, JKS

**Glossário:** [Glossário de A a Z](https://conota.dev/glossario/) · **Letra:** J

## O que é um arquivo JKS?

JKS é a sigla de Java KeyStore, que pode ser traduzido como "cofre de chaves do Java". Trata-se de um arquivo, geralmente com extensão .jks, que funciona como um pequeno cofre digital: dentro dele ficam guardados certificados e as chaves privadas correspondentes, e o acesso depende de senha.

Cada item guardado no cofre recebe um apelido, chamado alias. Assim, um mesmo arquivo JKS pode conter vários certificados, por exemplo, de diferentes empresas ou filiais, e o sistema escolhe qual usar pelo alias.

## Para que serve o JKS na emissão de notas fiscais?

Para emitir documentos fiscais eletrônicos, o sistema precisa do certificado digital da empresa emissora. Ele é usado para assinar digitalmente o XML, garantindo autoria e integridade, e para estabelecer a conexão segura com os servidores da SEFAZ ou da prefeitura.

Sistemas escritos em Java, como muitos ERPs e emissores próprios, costumam carregar esse certificado a partir de um arquivo JKS, porque é um formato que a plataforma Java lê de forma nativa. Com isso, a aplicação abre o cofre, informa a senha e obtém a chave privada no momento da assinatura.

## Qual a diferença entre JKS e arquivo PFX?

O certificado A1 da ICP-Brasil normalmente é entregue pela Autoridade Certificadora como um arquivo PFX (ou .p12), que segue o padrão internacional PKCS#12. Esse formato é reconhecido por praticamente qualquer linguagem e sistema operacional.

O JKS, por outro lado, é um formato próprio do ecossistema Java e pouco aceito fora dele. Na prática, os dois guardam o mesmo tipo de conteúdo, certificado e chave privada, mas o PFX é mais portátil. Versões mais recentes do Java passaram inclusive a adotar o PKCS#12 como formato padrão de keystore, e o JKS segue existindo principalmente por compatibilidade.

## Como converter um certificado PFX em JKS, e vice-versa?

A própria instalação do Java traz uma ferramenta de linha de comando chamada keytool, que permite importar o conteúdo de um PFX para um JKS ou fazer o caminho inverso. Na conversão, é preciso informar a senha do arquivo de origem e definir a senha do arquivo de destino.

O caminho inverso é útil quando o certificado está guardado apenas em JKS e precisa ser enviado a um serviço que aceita PFX, como costuma ocorrer em APIs fiscais que recebem o certificado codificado em Base64. Sempre confira na documentação do serviço quais formatos são aceitos.

## Qual a diferença entre keystore e truststore?

Os dois usam o mesmo formato de arquivo, mas têm funções diferentes. A keystore guarda o certificado e a chave privada da própria empresa, ou seja, aquilo que prova quem ela é. A truststore guarda certificados de autoridades em que o sistema confia, como os da cadeia da ICP-Brasil, para validar os servidores com que se conecta.

Em integrações fiscais feitas em Java, erros de conexão com a SEFAZ muitas vezes acontecem porque a truststore não contém a cadeia de certificação necessária, e não por problema no certificado da empresa.

## Quais cuidados de segurança o JKS exige?

Quem tem o arquivo JKS e a senha consegue assinar documentos em nome da empresa. Por isso, o arquivo não deve ser enviado por e-mail, versionado em repositórios de código nem guardado junto com a senha em texto aberto.

Boas práticas incluem usar senhas fortes, restringir quem pode acessar o arquivo no servidor, guardar a senha em uma ferramenta de gerenciamento de segredos e manter cópia de segurança. Também é importante acompanhar a validade do certificado A1, que expira e precisa ser substituído dentro do cofre.

## Exemplos de JKS para armazenamento de certificados

- Um ERP desenvolvido em Java carrega o certificado A1 de cada cliente a partir de um arquivo JKS, identificando cada empresa por um alias, antes de assinar o XML da NF-e.
- Uma equipe de desenvolvimento usa o keytool para converter o PFX recebido da Autoridade Certificadora em JKS, porque a biblioteca de emissão legada do sistema só aceita esse formato.
- Ao migrar a emissão para uma API fiscal que recebe o certificado em PFX codificado em Base64, uma software house exporta os certificados guardados em JKS de volta para PFX.
- Um sistema Java não consegue se conectar ao webservice da SEFAZ e o problema é resolvido ao importar os certificados da cadeia da ICP-Brasil para a truststore da aplicação.

## Perguntas frequentes

### Preciso de um arquivo JKS para emitir NF-e?

Não necessariamente. O JKS é apenas uma forma de armazenar o certificado, comum em sistemas Java. Outras linguagens e muitas APIs fiscais trabalham diretamente com o arquivo PFX entregue pela Autoridade Certificadora.

### Converter PFX em JKS altera o certificado?

Não. A conversão apenas muda o "recipiente". O certificado, a chave privada, o titular e a data de validade continuam os mesmos.

### O que acontece se eu esquecer a senha do JKS?

Sem a senha, não é possível extrair a chave privada do arquivo. Será preciso recorrer a uma cópia do PFX original com senha conhecida ou adquirir um novo certificado.

### Um arquivo JKS pode guardar certificados de várias empresas?

Sim. Cada certificado fica registrado com um alias diferente, e o sistema escolhe qual usar conforme a empresa emissora do documento.

## Termos relacionados

- [Arquivo PFX](https://conota.dev/glossario/arquivo-pfx.md)
- [Certificado digital A1](https://conota.dev/glossario/certificado-digital-a1.md)
- [Java na integração fiscal](https://conota.dev/glossario/java-na-integracao-fiscal.md)
- [Assinatura digital do XML](https://conota.dev/glossario/assinatura-digital-do-xml.md)
- [Gerenciamento de segredos](https://conota.dev/glossario/gerenciamento-de-segredos.md)
- [Cadeia de certificação digital](https://conota.dev/glossario/cadeia-de-certificacao-digital.md)

---

Fonte: [JKS para armazenamento de certificados](https://conota.dev/glossario/jks-para-armazenamento-de-certificados/) · Atualizado em 2026-10-22
