Executando verificação de segurança...
1

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

ItemVersão/Detalhe
Sistema OperacionalUbuntu 24.04 LTS
Tipo de certificadoe-CPF A3 (cartão inteligente)
Fabricante do cartãoMorpho / Thales (BrazIdeal)
Leitor de cartãoCASTLES EZCCID Smart Card Reader
MiddlewareSafeSign Identity Client 4.1
NavegadorFirefox (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

  1. Abra o Firefox com o cartão inserido
  2. Acesse https://cav.receita.fazenda.gov.br
  3. Clique em Certificado Digital
  4. 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.

Carregando publicação patrocinada...