Fazendo meu certificado digital funcionar no Ubuntu
Com a morte lenta do windows fiz minha transição 100% para Linux.
Eu ainda tinha o windows no dualboot pra acessar o https://acesso.gov.br porque pra fazer meu certificado A3 funcionar no linux estava sendo um parto.
Hoje eu "regacei as manga" e perdi um tempão pra fazer essa joça funcionar.
Fica aqui um passo a passo do que eu fiz, pro caso de alguém precisar de um material de consulta (só testei no firefox e não pode ser versão snap ou flatpack)
Certificado Digital Morpho (e-CPF A3) no Ubuntu 24.04
Ambiente
| Item | Versão/Detalhe |
|---|---|
| Sistema Operacional | Ubuntu 24.04 LTS |
| Tipo de certificado | e-CPF A3 (cartão inteligente) |
| Fabricante do cartão | Morpho / Thales (BrazIdeal) |
| Leitor de cartão | CASTLES EZCCID Smart Card Reader |
| Middleware | SafeSign Identity Client 4.1 |
| Navegador | Firefox (obrigatoriamente instalado como .deb) |
Pré-requisitos
⚠️ Firefox NÃO pode ser Snap
O Firefox instalado por padrão no Ubuntu 24.04 vem como Snap, que possui sandbox restritiva e impede o carregamento de bibliotecas externas como o módulo PKCS#11 do SafeSign. É obrigatório instalar o Firefox como .deb.
Para verificar se o seu Firefox é Snap:
which firefox
# Se retornar /snap/bin/firefox → é Snap, precisa trocar
# Se retornar /usr/bin/firefox → verifique com:
file /usr/bin/firefox
# Deve ser um symlink para ../lib/firefox/firefox, não um wrapper de Snap
Passo 1 — Remover o Firefox Snap e instalar o .deb
# Remover o Firefox Snap e o wrapper
sudo snap remove firefox
sudo apt remove --purge firefox -y
sudo apt autoremove -y
# Adicionar o repositório oficial da Mozilla
sudo install -d -m 0755 /etc/apt/keyrings
wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O- \
| sudo tee /etc/apt/keyrings/packages.mozilla.org.asc > /dev/null
echo "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] \
https://packages.mozilla.org/apt mozilla main" \
| sudo tee /etc/apt/sources.list.d/mozilla.list
# Dar prioridade ao repositório da Mozilla
echo '
Package: *
Pin: origin packages.mozilla.org
Pin-Priority: 1001
' | sudo tee /etc/apt/preferences.d/mozilla
# Instalar
sudo apt update
sudo apt install -y firefox
# Confirmar instalação correta
file /usr/bin/firefox
# Resultado esperado: symbolic link to ../lib/firefox/firefox
Passo 2 — Instalar dependências de smart card
sudo apt update
sudo apt install -y pcscd pcsc-tools libccid opensc
sudo systemctl enable pcscd
sudo systemctl start pcscd
Passo 3 — Verificar leitura do cartão
Com o cartão inserido no leitor:
pcsc_scan
Resultado esperado:
ATR: 3B 79 18 00 00 42 72 61 7A 49 44 65 61 6C
Brazilian digital certificate card (eID)
O comando fica rodando aguardando eventos — encerre com Ctrl+C.
Passo 4 — Instalar o driver SafeSign Identity Client 4.1
O OpenSC não suporta o applet dos cartões Morpho/BrazIdeal. É necessário o middleware proprietário SafeSign.
cd ~/Downloads
# Baixar o pacote para Ubuntu 22.04 (compatível com 24.04)
wget "https://certificaat.kpn.com/files/drivers/SafeSign/SafeSign IC Standard Linux 4.1.0.0-AET.000 ub2204 x86_64.deb" \
-O safesign.deb
# Extrair apenas a biblioteca (evita problemas de dependência)
dpkg-deb -x safesign.deb ~/safesign-extract
# Copiar a biblioteca para o sistema
sudo cp ~/safesign-extract/usr/lib/libaetpkss.so* /usr/lib/
sudo ldconfig
# Verificar
ls /usr/lib/libaetpkss*
Resultado esperado:
/usr/lib/libaetpkss.so
/usr/lib/libaetpkss.so.3
/usr/lib/libaetpkss.so.3.9
/usr/lib/libaetpkss.so.3.9.21
/usr/lib/libaetpkss.so.3.9.21.1
Passo 5 — Confirmar leitura do certificado
pkcs11-tool --module /usr/lib/libaetpkss.so -l --list-objects
Digite o PIN do cartão quando solicitado. Deve aparecer o certificado X.509 com seu nome.
Passo 6 — Configurar o módulo no Firefox
Primeiro, abra e feche o Firefox uma vez para criar o perfil. Depois localize o perfil:
find ~ -name "cert9.db" 2>/dev/null | grep firefox
O caminho será algo como:
/home/SEU_USUARIO/.config/mozilla/firefox/xxxxxxxx.default-release/cert9.db
Adicione o módulo SafeSign (com o Firefox fechado):
modutil -dbdir sql:"/home/SEU_USUARIO/.config/mozilla/firefox/xxxxxxxx.default-release" \
-add "SafeSign" \
-libfile /usr/lib/libaetpkss.so
Digite y quando solicitado. Resultado esperado:
Module "SafeSign" added to database.
Passo 7 — Testar
- Abra o Firefox com o cartão inserido
- Acesse https://cav.receita.fazenda.gov.br
- Clique em Certificado Digital
- O Firefox solicitará o PIN do cartão
Solução de problemas
pcsc_scan não reconhece o cartão
→ Verifique se o leitor está conectado: lsusb
→ Reinicie o serviço: sudo systemctl restart pcscd
pkcs11-tool retorna CKR_TOKEN_NOT_RECOGNIZED
→ O OpenSC não suporta este cartão. Use exclusivamente o /usr/lib/libaetpkss.so do SafeSign.
Firefox não pede PIN
→ Confirme que o Firefox não é Snap: file /usr/bin/firefox
→ Verifique se o módulo foi adicionado: modutil -dbdir sql:"/caminho/do/perfil" -list
→ Feche e reabra o Firefox completamente após adicionar o módulo.
Permissão negada no pcscd
→ sudo usermod -aG plugdev $USER e faça logout/login.