Guia definitivo de instalação do PJeOffice no Linux
- Criado em 02/05/2021 Por Alexsander Carvalho
Aplicável ao sistema operacional Mac OS, desde que usando o gerenciador de pacotes "apt" do Linux. Visite o BR-Mac.org para maiores informações.
Inicio este pequeno guia ressaltando a insatisfação da comunidade open source visto que nem sempre nós, usuários GNU/Linux ou usuários de outros sistemas operacionais livres, somos lembrados por parte da TI dos tribunais, tanto na confecção de manuais e orientações, ou até mesmo soluções voltadas aos nossos ambientes. A exemplo do que digo, temos o Pje-Calc cidadão, que, prestes a vigorar sua obrigatoriedade (cf. Res. 241/CSJT c/c Ato CSJT.GP.SG 89/2020, que altera para 1º de janeiro de 2021 a data de obrigatoriedade do uso do PJe-Calc para juntar cálculos aos autos dos processos) este ainda está homologado apenas para o SO Windows 7/8/8.1/10 de 32 ou 64 bits, não tendo uma aplicação Linux, FreeBSD ou Mac OS até então e, com isso, boa parte dos advogados são obrigados a usarem unicamente o software proprietário da Microsoft (Windows).
Tampouco referida inércia se mostra convergente com a previsão do Art. 24, V, do Marco Civil da Internet (Lei nº 12.965/2014), cuja redação expressa que "A adoção preferencial de tecnologias, padrões e formatos abertos e livres constitui diretriz para a atuação da União, dos Estados, do Distrito Federal e dos Municípios no desenvolvimento da internet no Brasil". E mais, o Art. 25, I, diz que "As aplicações de internet de entes do poder público devem buscar pela compatibilidade dos serviços de governo eletrônico com diversos terminais, sistemas operacionais e aplicativos para seu acesso".
Algo que, de todo o certo, afeta a liberdade de escolha do usuário advogado e urge por atenção por parte do Conselho Nacional de Justiça - CNJ e do Conselho Superior da Justiça do Trabalho - CSJT.
Prossigamos.
I - PREPARANDO O AMBIENTE
1º - Uma primeira coisa a se saber seria que algumas distribuições Linux não permitem que seus usuários efetuem login como "root", como no caso do Kali Linux, Ubuntu e Debian 10, mas ele existe. E isso tem uma razão de ser, não é recomendado fazer isso a menos que você saiba exatamente o que você está fazendo. Raiz (“root”) é um superusuário, significa que pode fazer qualquer coisa e tudo, portanto, é apenas para tarefas administrativas. Tarefas do dia a dia podem ter um risco de segurança que será explorado se todos usarem root.
Isso pode acarretar do seu usuário vir a não estar listado no "sudoers", e por consequência, não poderá instalar aplicações usando o comando "sudo" (O comando sudo do sistema operacional Unix permite a usuários comuns obter privilégios de outro usuário, em geral o super usuário, para executar tarefas específicas dentro do sistema de maneira segura e controlável pelo administrador).
Como resolver?
Resposta: reinicie seu computador em modo texto. No GRUB (GRand Unified Bootloader) selecione "advanced options/rescue mode", após o boot irá te pedir a senha do root criada na instalação.
Use o comando:
"$ visudo -f /etc/sudoers"
Com o arquivo sudoers aberto, localize a linha do “user root” e logo abaixo desta adicione sua conta padrão "nome_do_usuário ALL=(ALL:ALL) ALL", saia usando "Ctrl+X" em seguida Y para confirmar e salvar as alterações.
Confira na imagem abaixo:
Pronto, agora você tem privilégios de super usuário, reinicie seu equipamento novamente no modo gráfico! Lembre-se que, se você não tem problemas com “sudo” pule para a próxima etapa.
2º - Voltando à interface gráfica, — aqui usamos o KDE plasma 5.14.5 e nossa distribuição Linux é um Debian 10 buster "non-free"—, mas se quiser pode aproveitar que já está logado como root em modo texto e fazer isso também.
É hora de configurar o acesso ao seu token.
Abra um terminal usando a combinação de teclas Ctrl+alt+t e use o comando:
"$ sudo apt-get update -y"
Isso irá atualizar a lista das versões dos pacotes disponíveis antes de iniciarmos.
Em seguida, iremos configurar o certificado A3 via PKCS#11 (Public-Key Cryptography Standards) para utilização no GNU Linux. Com o terminal aberto, use os comandos abaixo:
"$ sudo apt-get install opensc"
ou
"$ sudo apt-get install opensc-pkcs11"
Ainda, se preferir "sudo apt-get install opensc && apt-get install opensc-pkcs11", eu preferi não concatenar comandos para explicar de uma forma mais didática àqueles que não tem o hábito com o ambiente GNU Linux, mas se você tem experiência, fique à vontade... Isso irá instalar as bibliotecas e utilitários que iremos precisar para acessar o Token e sua chave criptográfica.
Leia mais sobre a biblioteca OpenSC.
Agora vamos aos testes!
Um dos melhores testes que você pode fazer é executar o comando:
"$ pkcs11-tool --module /usr/lib/libeTPkcs11.so -O"
A resposta pretendida no terminal deverá ser como na imagem abaixo:
Ou qualquer que seja o módulo com o qual você esteja trabalhando. Isso mostraria se a lib PKCS #11 do fornecedor funciona, mas outros comandos pkcs11-tool também podem ser testados.
Para conhecer outros comandos use o comando:
"$ pkcs11-tool --help"
Agora observe a resposta do comando "pkcs11-tool --module /usr/lib/libeTPkcs11.so -O". Este comando deve retornar no terminal a chave armazenada no Token (Lembrando que, o meu é um Safenet 5110 e não recomendamos de forma alguma usar o token GD Starsign em ambiente Unix), caso retorne este erro em seu terminal:
pkcs11-tool: CRYPTO/Crypto.c:247: init_openssl_crypto: Assertion `lib' failed. Aborted
Procure fazer um teste sob seu leitor (no meu caso token 5110 da Safenet) e, claro, não deixe de instalar também os respectivos drivers do seu token, conforme explicado no título II. Assim procedento, use o comando:
"$ opensc-tool -l # Detected readers (pcsc)"
Deverá receber a seguinte resposta:
Identificado nosso token, será preciso criar um link simbólico (symbolic link) para sua biblioteca que pode ser um ou outro dos comandos abaixo:
"$ sudo ln -s /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.2 /usr/lib/libcrypto.so.6"
ou
"$ sudo ln -s /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 /usr/lib/libcrypto.so.6"
Obs.: É necessário verificar qual versão da biblioteca você tem instalada, no meu caso foi a libcrypto.so.1.1. Isso também criará a libcrypto.so.6 dentro de /usr/lib/ como um symbolic link para libcrypto.so.1.1
Agora, execute novamente o comando:
"$ pkcs11-tool --module /usr/lib/libeTPkcs11.so -O"
Confiram a resposta com seus dados no terminal.
Por fim, execute também o comando:
"$ pcscd -d -a 2> /tmp/pcscd.trace"
Isso mostraria os comandos usados pelo módulo para encontrar os objetos no token. Ele também deverá mostrar seu PIN. Se você tiver problemas, poderá depurar facilmente as interações do PKCS #11 graças às variáveis de ambiente "opensc_debug" ou "pkcs11spy" da OpenSC.
E aqui temos um Quick start para se aprender um pouco mais sobre OpenSC.
II - APLICAÇÃO E DRIVERS PROPRIETÁRIOS
3º - Superada a etapa da chave criptográfica do seu token, é hora da parte fácil, instalar os drivers da Safenet e o PjeOffice. Agora você pode baixar a versão 10 do Safenet no Link abaixo que os instaladores DEB e RPM para 32 e 64 bits.
➥ Download Safenet Authentication Client 10 – DEB
Este é o drive mais recente da Safenet, vs 10.0.37.
Navegue até a pasta do DEB para versão desejada de 32 ou 64 Bits e o instale:
"$ sudo dpkg -i SafenetAuthenticationClient-BR-10.0.37-0_amd64.deb"
4º - Também, use a versão mais atual do PjeOffice, lembre-se que o CNJ disponibilizou a nova versão do PJe Office.
➥ Acesse aqui os Links para Downloads
Localize seu pacote e instale-o:
"$ sudo dpkg -i pje-office_amd64.deb"
Obs. Para o sistema operacional Mac OS sugerimos que baixe os drivers do seu token disponíveis no site da Certisign®, já para a aplicação PjeOffice, baixe-a aqui no seguinte link (https://www.pje.jus.br/wiki/index.php/PJeOffice) visto que os links para download do CNJ se quebraram e não os tenho disponíveis para upload.
➥ Como brinde, fiz upload para meu Google drive também do Certisign WebSigner para Linux, um componente que suporta assinatura digital de documentos e operações com certificado digital via Web sem a necessidade de Java. O WebSinger é usado no acesso ao Portal de Assinaturas da OAB/MG, para assinarmos documentos eletrônicos com validade jurídica, de forma simples, segura, sustentável e de qualquer parte do mundo.
III - CONFIGURANDO OS DRIVERS
5º - Um detalhe importante que precisa ser executado (Malgrado nunca ter precisado desta etapa para acessar, distribuir, ou assinar nada.) é vincular o seu navegador ao driver do token. Podemos fazer isso editando o arquivo ".pjeOffice/pkcs11.conf" no diretório home do usuário (lembre-se ainda que, quando precedido de "." quer dizer que este diretório é oculto), se não tiver algo assim basta escrevê-lo com seu editor de texto predileto e salvar com extensão .conf.
Segue o >#Certificado_Digital" target="_blank">link para maiores detalhes, e como proceder no Mac OS.
6º - Também será preciso vincular a libeTPkcs11.so no próprio aplicativo PjeOffice, tecle Ctrl+alt+t para abrir um terminal e vá até onde está seu PjeOffice "$ cd /usr/share/pje-office", estando no diretório da aplicação, digite o comando "$ ./pjeOffice.sh" e, aguarde alguns segundos que logo seu PjeOffice estará no sistray, ou bandeja do sistema, ao lado do relógio e outras aplicações abertas na barra de ferramentas.
Abra-o normalmente clicando com botão direito sob seu ícone, e localize a opção "Configuração de Certificado", neste momento ele já está abrindo sem erros, então vá à aba "PKCS11"e localize-a no diretório /usr/lib/. Pronto, agora voltando à aba "Avançado" já podemos ver nossos dados do certificado na aplicação do PjeOffice:
Superada estas etapas, seu token já está configurado para ser usado no Debian 10 buster. Lembre-se apenas que, no Linux as coisas não são mastigadas como no Windows, então a regra será a de se iniciar a aplicação via terminal. Mas você pode escrever um script simples com estes comandos e colocá-lo na inicialização do sistema pela interface: Configuração do Sistema/Inicialização e Desligamento/Iniciar automaticamente, isso fará iniciar o PjeOffice junto com a inicialização do Linux, o que simplifica essa etapa; porém, eu prefiro usar a shell mesmo.
Segue o >#PJeOffice_no_Linux" target="_blank">link para maiores detalhes.
IV - ATUALIZANDO O SISTEMA
7º - Por fim, sempre recomendo dar uma "ajeitada na casa". Use os comando "$ sudo apt update"em seguida um"$ sudo apt-get full-upgrade" e pronto. Sistema operacional configurado e atualizado! É hora de abrir o site do TJMG para seu último teste.
V - CONCLUSÃO
Como se observa, o PjeOffice e seu token em si não são sistemas simples de serem instalados no Linux mas não é nada que um pouco de dedicação não resolva. Caso esqueça algum comando, retorne os primeiros passos e lembre-se que o arquivo "./bash_history" armazena tudo que você faz no terminal. Lembrando que, instalando-se corretamente a biblioteca OpenSC e os drivers do seu respectivo token, seu ambiente já está devidamente preparado. Este guia não dá suporte ao GD Starsign (GD Burti é péssimo em ambientes Unix), substitua-o pelo modelo Safenet 5110 antes de mais nada. Se aparte de apostilas e guias extensos antes publicados na rede indicando a instalação inúmeras chaves públicas da IPC-Brasil e demais práticas nada confiáveis, isso só conduz a um cornoware, pois o resto é com o PjeOffice e não mais com seu token. Logo, o token não sendo reconhecido, não há muito o que fazer se não proceder com a sua pronta substituição.
Technical note: Para outras distro GNU/Linux, lembre-se apenas que Arch Linux usa o Gerenciador de Pacotes "pacman" (nome reduzido de Package Manager) e não "apt" (Advanced Packaging Tool), CentOS e RHEL ainda usam o antigo gerenciador de pacotes YUM, já o Fedora foi o primeiro sistema da família de distribuições Red Hat a adotar o novo gerenciador de pacotes DNF. Assim como as distribuições da Red Hat, o OpenSUSE usa o formato do pacote RPM, e seu próprio gerenciador de pacotes, o Zypper, mas em nada muda a lógica aqui apresentada. Ainda, se seu Mac OS usar o gerenciador de pacotes "apt" do Debian, este guia lhe será útil.
Para execução do conteúdo aqui apresentado não há necessidade de Java, visto que o PjeOffice já não o requer desde fevereiro de 2019. Portanto, cuidado com material dessatualizado na rede.
Ao momento é só, espero que este guia lhes seja útil ao dia a dia forense.
REFERÊNCIAS
Apt-get no Mac? Gerenciadores de pacotes para o OS X. Disponível em: https://br-mac.org/2012/09/apt-get-no-mac-gerenciadores-de-pacotes-paraoos-x.html
Aplicativo PJeOffice para instalação. Disponível em: https://www.pje.jus.br/wiki/index.php/PJeOffice
Certisign Certificadora Digital - Downloads. Disponível em: https://www.certisign.com.br/duvidas-suporte/downloads
CSJT altera a obrigatoriedade do uso do PJe-Calc para janeiro de 2021. Disponível em: http://www.csjt.jus.br/web/csjt/-/csjt-alteraaobrigatoriedade-do-uso-do-pje-calc-para-janeiro-de-2...
Como executar dois ou mais comandos do Linux ao mesmo tempo. Disponível em: https://www.techtudo.com.br/dicasetutoriais/noticia/2016/09/como-executar-dois-ou-mais-comandos-do...
Documentação OpenSC: Ferramentas e middleware de cartão inteligente de código aberto. Disponível em: https://github.com/OpenSC/OpenSC/wiki
Usando OpenSC. Disponível em: https://github.com/OpenSC/OpenSC/wiki/Using-OpenSC
Início rápido com OpenSC. Disponível em: https://github.com/OpenSC/OpenSC/wiki/Quick-Start-with-OpenSC
O CNJ disponibilizou a nova versão do PJe Office. Disponível em: https://cryptoid.com.br/banco-de-noticias/novo-pje-office-acesse-aqui-os-links-para-downloads/
Portal de Assinaturas da OAB/MG. Disponível em: https://oab.portaldeassinaturas.com.br/
Assinador PJe Office substitui plugin Java. Disponível em: https://www.cnj.jus.br/assinador-pje-office-substitui-plugin-java/
Tutorial PJeOffice. Disponível em: >#PJeOffice_no_Linux" target="_blank">http://www.pje.jus.br/wiki/index.php/PJeOffice#PJeOffice_no_Linux
Marco Civil da Internet. Disponível em: http://www.planalto.gov.br/ccivil_03/_ato2011-2014/2014/lei/l12965.htm