[Tutorial] Instalar certificado digital Safesign usando distrobox em qualquer distro

I. Introdução

Uma das maiores dificuldades que se tem é garantir a compatibilidade das distribuições Linux com os pacotes que fornecem certificados digitais. O empacotamento por vezes pode ser compatível – como o caso do deb fornecido pela Safesign para Ubuntu quando instalado no Debian -, mas por vezes não o é – como no caso do rpm fornecido pela Safesign para RHEL no openSUSE.

Hoje em dia isso pode ser facilmente ultrapassado mediante o uso do distrobox em conjunto com podman.

II. Instalar distrobox e podman

Para tanto, é necessário instalar distrobox com podman em sua distribuição:

No Fedora: # dnf install distrobox podman

No Arch: # pacman -Suy distrobox podman

No openSUSE: # zypper in distrobox podman

No Debian: # apt install distrobox podman

III. Instalar pcsclite

Para que tal solução funcione, faz-se necessário, contudo, que antes se instale na distribuição os pacotes necessários para que o certificado digital seja reconhecido pelo sistema: os pacotes pcsclite (que funciona de “middleware” para o token e o certificado digital em si) e o ccid (que fornece interface genérica USB para o token):

No Fedora: # dnf install pcsc-lite pcsc-lite-ccid (já vem instalado por padrão no Workstation e Silverblue)

No Arch: # pacman -Suy pcsclite ccid

No openSUSE: # zypper in pcsc-lite pcsc-ccid

No Debian: # apt install pcscd

Feita a instalação, o serviço do pcsc deverá ser habilitado: # systemctl enable --now pcscd.service

IV. Criar o contêiner e nele ingressar

O distrobox funcionará como contêiner imperceptível (seamless) por meio do qual o certificado digital poderá rodar sem qualquer preocupação.

Para tanto deverá se criar o contêiner, ao qual nomearemos de “certificado”:

$ distrobox-create --image debian:stable --name certificado

Uma vez criados, devemos entrar no contêiner por meio do seguinte comando:

$ distrobox-enter certificado

Serão feitas algumas instalações finais: uma vez encerradas estaremos dentro do contêiner, que deverá parecer com isso:

usuário@certificado:~$

V. Instalar aplicações no contêiner

Agora teremos que fazer a instalação do nano (para permitir edição de textos) e firefox-esr (para utilizar como navegador do certificado digital) dentro do contêiner:

$ sudo apt install firefox-esr nano

Feita a instalação, deveremos agora instalar o certificado digital. Para tanto, vamos precisar os seguintes arquivos e deixá-lo em um mesmo diretório, a fim de que a instalação tenha sucesso:

libssl: https://security.debian.org/debian-security/pool/updates/main/o/openssl/libssl1.1_1.1.1n-0+deb11u5_amd64.deb

libtiff5: http://ftp.us.debian.org/debian/pool/main/t/tiff/libtiff5_4.2.0-1+deb11u5_amd64.deb

libwebp6: http://ftp.us.debian.org/debian/pool/main/libw/libwebp/libwebp6_0.6.1-2.1+deb11u2_amd64.deb

libwxbase: http://ftp.us.debian.org/debian/pool/main/w/wxwidgets3.0/libwxbase3.0-0v5_3.0.5.1+dfsg-2_amd64.deb

libwxgtk3: http://ftp.debian.org/debian/pool/main/w/wxwidgets3.0/libwxgtk3.0-gtk3-0v5_3.0.5.1+dfsg-2_amd64.deb

Safesign 4.0: https://certificaat.kpn.com/files/drivers/SafeSign/SafeSign IC Standard Linux 4.0.0.0-AET.000 ub2004 x86_64.deb

Colocados todos no mesmo diretórios, basta rodar o seguinte comando para instalar os pacotes dentro do contêiner:

$ sudo apt ./*

VI. Exportar aplicações instaladas no contêiner

Feita a instalação, agora será necessário “exportar” os programas do contêiner para que possam ser abertos por meio de entrada no menu do desktop. Para tanto, deverá rodar os seguintes comandos dentro do contêiner:

$ distrobox-export --app tokenadmin

$ distrobox-export --app firefox-esr

Com isso, bastará abrir o tokenadmin por meio do menu e verificar se detectou o certificado digital. Caso não detecte, veja se o serviço pcscd.service está rodando.

VII. Configurações finais

Agora bastará carregar o certificado digital no Firefox no gerenciador de dispositivos, fazendo referência ao local da biblioteca do certificado, isto é, “/lib/libaetpkss.so”.

Para configurar o certificado no WebPKI, utilizado pelo eSAJ do TJSP e outros Estados, basta instalar o plugin no Firefox, instalar o deb dentro do contêiner, e sinalizar no plugin a opção “Dispositivos SafeSign AET” em “Cripto Dispositivos”. O mesmo valor para o Web Signer utilizado pelo eSAJ TJAM.

Quanto ao PjeOffice Pro, será necessário fazer uma pequena alteração. Baixe-o e descompacte-o em algum diretório de sua home, por exemplo, ~/PjeOffice.

Lá, edite o pjeoffice-pro.sh, alterando onde está “a3auto=true” para “a3auto=false”. Após isso, habilite-o dentro do contêiner para funcionar como executável:

$ chmod +x pjeoffice-pro.sh

Feito isso, exporte-o para rodar como comando diretamente do seu terminal – o diretório deverá ser absoluto. Veja um exemplo abaixo:

$ distrobox-export --bin /home/pedro/PJeOffice/pjeoffice-pro.sh

Caso não funcione, verifique se /home/usuário/.local/bin encontra-se no $PATH. Se não estiver, adicione o seguinte texto no ~/.bashrc:

PATH="$PATH:/$HOME/.local/bin"

Para que o PJeOffice funcione, será necessário remeter à biblioteca localizada em /lib/libaetpkss.so em suas configurações.

Acredito que assim agora teremos um sistema quase totalmente funcional para o trabalho e livre de surpresas.