Começar a leitura
Variedades

Certificado digital no Linux: A1 no navegador, A3 no token e falhas

Certificado digital no Linux funciona, mas o A1 entra pelo repositório do navegador e o A3 depende do driver do token, e é aí que a maioria trava.
certificado digital no Linux

O desenvolvedor migrou o notebook para Ubuntu numa sexta e, na segunda, precisava assinar a nota fiscal da empresa. O arquivo .pfx estava no e-mail, o Chrome estava instalado, e o site da prefeitura pedia o certificado que não aparecia em lugar nenhum. Uma hora de fóruns depois, o problema era um só: o Chrome no Linux não enxerga o certificado do sistema, e sim de um banco próprio que precisa ser alimentado pela linha de comando. Três comandos resolveram.

Usar certificado digital no Linux é possível com os dois modelos da ICP-Brasil, mas cada um entra por uma porta diferente. O A1, que é um arquivo, precisa ser importado no repositório do navegador, e no Chrome isso é feito com a ferramenta pk12util ou pela tela de configurações. Já o A3, em token ou cartão, exige o software do fabricante e o registro do módulo PKCS#11 no navegador, e é nessa etapa que o Ubuntu costuma falhar, porque nem toda marca publica pacote para o sistema.

Este texto mostra como levar o A1 para o Chrome e para o Firefox, como instalar driver e módulo para o A3, quais tokens têm suporte, o que fazer quando o site não lista o certificado e como testar antes de precisar. Entra também a alternativa da nuvem, que dispensa tudo isso.

Aqui estão a importação do A1, o caminho do A3, os tokens com e sem suporte e a tabela comparativa. Entram o teste de leitura, a chave em nuvem, os erros de quem procura o certificado no lugar errado, a ordem para agir, os custos e as dúvidas mais frequentes.

Certificado digital no Linux: importar o A1

O Chrome e o Chromium no Linux usam o banco NSS do usuário, na pasta .pki/nssdb, e não o repositório do sistema. Para o A1, o caminho é instalar o pacote libnss3-tools e rodar pk12util com o arquivo .pfx e a senha, apontando para essa pasta. Depois disso, o certificado aparece em Configurações, Privacidade, Gerenciar certificados, na aba de certificados pessoais, e o site passa a oferecê-lo na hora do login. O Firefox tem o próprio banco e importa pela tela de certificados, sem terminal. Nos dois, o .pfx pode ser apagado depois, e é bom que seja.

O A3: driver e módulo

Token e cartão exigem duas coisas: o software do fabricante, que faz o sistema enxergar o dispositivo, e o módulo PKCS#11, uma biblioteca que o navegador carrega para conversar com o chip. Alguns fabricantes publicam pacote .deb com os dois; outros publicam só o módulo e contam com o OpenSC, projeto aberto que cobre boa parte dos chips. Com o módulo instalado, ele é registrado com o modutil, e o navegador passa a pedir o PIN do token na hora de assinar.

Cartão exige ainda uma leitora com suporte no pcscd, o serviço de leitura de smart card, que precisa estar rodando. Sem ele, o módulo carrega e não encontra nada.

Quando o certificado está importado e o site continua sem listá-lo, o problema costuma ser de cadeia de certificação ou de módulo não carregado. O guia de certificado digital no navegador Chrome percorre os erros comuns, do certificado que não aparece na lista ao token que o navegador não vê, com caminhos para Windows e Mac que valem, na maior parte, para o Linux também. Confirmar a cadeia instalada e o módulo registrado antes de culpar o site poupa a manhã.

Comparativo por tipo e distribuição

O que cada combinação exige e onde costuma falhar.
CombinaçãoExigeOnde falha
A1 no Chromepk12util na pasta nssdb.Importar no repositório errado.
A1 no FirefoxImportação pela tela.Raramente.
A3 com pacote oficialPacote .deb e modutil.Versão antiga do pacote.
A3 sem pacote oficialOpenSC e pcscd.Chip não suportado.

Tokens com e sem suporte

Os tokens mais vendidos no Brasil têm pacote para Linux publicado pelo fabricante, em geral para Ubuntu e Debian, em 64 bits. Modelos mais antigos ou de marcas menores ficam por conta do OpenSC, que reconhece a maior parte dos chips de mercado, mas não todos. Antes de comprar um A3 para usar no Linux, vale conferir no site da marca se há pacote para a distribuição em uso; token sem pacote e fora da lista do OpenSC não funciona, e a única saída é usá-lo em outro sistema.

Leitoras USB de cartão costumam ter suporte genérico e funcionam sem instalação na maioria dos casos.

Testar antes de precisar

O teste mais simples é abrir um site que exija login com certificado, como o portal da Receita ou o do eSocial, e ver se o navegador oferece o certificado na janela de seleção. Aparecendo e entrando, está pronto. Caso contrário, o comando certutil lista o que há no banco do usuário, e o modutil lista os módulos registrados; o que faltar ali é o que falta no navegador. Fazer o teste na semana da emissão, e não no dia do prazo, separa o susto da rotina.

A chave em nuvem

Quem não quer lidar com pacote e módulo tem a opção do modelo em nuvem, em que a chave fica no servidor da certificadora e a assinatura é autorizada pelo celular. No Linux, ele funciona em qualquer navegador, porque não há nada para instalar na máquina, e serve para assinar documentos e acessar sistemas do governo. A limitação é que alguns sistemas antigos só aceitam A1 ou A3.

Erros de quem procura no lugar errado

O erro mais comum é colocar o A1 no armazém de certificados do sistema, com update-ca-certificates, e esperar que o Chrome o veja, quando ele lê só a pasta do usuário. Vem depois instalar o pacote do token e esquecer o modutil, o que deixa o navegador sem saber que o dispositivo existe. Segue comprar token sem conferir se há suporte à distribuição. Fecha a lista testar no dia do prazo. Todos custam a hora de fóruns do começo.

Em ordem, para agir

  1. Instalar libnss3-tools e, para A3, o pacote do fabricante ou o OpenSC com pcscd.
  2. Importar o A1 com pk12util, ou registrar o módulo do A3 com modutil.
  3. Instalar os certificados da cadeia ICP-Brasil na mesma pasta.
  4. Abrir um site com login por certificado e conferir se ele aparece na seleção.
  5. Anotar os comandos usados, porque a próxima distribuição vai pedir de novo.

O passo dois resolve na maioria dos casos.

Quanto custa

Nada, no que depende do sistema: as ferramentas são livres e o OpenSC também. O que custa é o certificado, entre R$ 100 e R$ 250 por ano nos modelos comuns, e o token, de R$ 80 a R$ 150, quando o modelo é A3. A versão em nuvem fica na mesma faixa do A1 e dispensa mídia. Quem compra um token sem suporte ao sistema paga duas vezes.

Perguntas frequentes sobre o Linux

Certificado digital no Linux funciona no Chrome?

Sim. O A1 entra com pk12util no banco do usuário e o A3 com o módulo registrado pelo modutil. O Chrome ignora o repositório do sistema.

Todo token tem driver para Linux?

Não. Os mais vendidos têm pacote para Ubuntu e Debian; os demais ficam por conta do OpenSC, que não cobre todos os chips.

O certificado não aparece no site. E agora?

Conferir com certutil se ele está no banco, com modutil se o módulo consta, e se os certificados da cadeia foram instalados.

Firefox é mais fácil que o Chrome?

Para o A1, sim, porque importa pela tela. Para o A3, os dois exigem o módulo, e o processo é parecido.

O modelo em nuvem funciona no Linux?

Sim, em todos os navegadores, sem instalar nada, porque a chave fica no servidor e a autorização vem pelo celular.

Preciso de terminal?

Para o Chrome, em geral sim, porque a tela de importação varia entre distribuições. Três comandos bastam.

Resumo

Certificado digital no Linux funciona nos dois modelos: o A1 é importado na pasta nssdb com pk12util, e o A3 exige pacote do fabricante ou OpenSC, mais o módulo registrado com modutil e o pcscd rodando. O Chrome ignora o armazém do sistema, o token precisa ter suporte na distribuição, e o teste em site com login por certificado confirma tudo antes do prazo. O modelo em nuvem dispensa a instalação e roda em todos os navegadores.

Você também pode gostar