Como assinar documentos com o agente desassistido usando o AutoFirma
Resumo
Este guia explica como assinar documentos usando o agente desassistido e o AutoFirma. Ele é útil para administradores e desenvolvedores que desejam melhorar as operações de assinatura.
Contexto
A assinatura desassistida ou em massa refere-se a operações de assinatura automatizadas realizadas sem interação do usuário. Nesse modo, os documentos são assinados por serviços que acessam as chaves de assinatura necessárias de forma segura e automática. Essa abordagem é usada para assinar documentos PDF, arquivos XML (como notas fiscais eletrônicas) ou outros arquivos binários quando é necessário aplicar assinaturas em um servidor.
A assinatura desassistida requer a instalação do agente Linux do Redtrust.
Redtrust é compatível apenas com o AutoFirma 1.8.4 ou superior.
Antes de começar
Antes de continuar com este guia, você deve ter:
- Um ambiente Ubuntu.
- O agente Linux do Redtrust.
- AutoFirma instalado na sua instância Ubuntu.
- Um usuário de serviço com acesso ao certificado que você deseja usar e com acesso a uma política que permita todas as aplicações e sites ou especificamente à aplicação Java.
Ao instalar o AutoFirma, você precisará instalar Java e libnss3-tools usando estes comandos:
apt-cache search java | more
sudo apt install openjdk-11-jre
sudo apt install libnss3-tools
Observe que o comando sudo apt –fix-broken install documentado no link do AutoFirma pode não funcionar.
Passos
-
Acesse sua máquina Linux onde o agente desassistido está instalado.
-
Verifique se o agente está em execução.
systemctl status KeyfactorService.service -
Configure o agente com as credenciais do usuário de serviço que assinará os documentos.
keyfactor-setup hostname=IP_O_HOSTNAME clientid=CLIENT_ID username=NOME_DO_USUARIO password=SENHA loglevel=NIVEL_DE_LOGPor exemplo, o comando para um usuário
cris@local.usersemagent01.example.comé:keyfactor-setup hostname=agent01.example.com clientid=T4N3r2WBbvKfyYe8/z+SVW5N= username=cris@local.users password=ChangeMe123 loglevel=LOWnotaloglevelrepresenta a quantidade de detalhes que será incluída nos logs. Valores válidos:NONE,LOW,HIGH. -
Assine os documentos com o seguinte comando. Este comando chama o AutoFirma e indica que ele deve usar o módulo PKCS#11 do Redtrust como repositório de certificados.
autofirma sign -store pkcs11://usr/lib/libkeyfactorpkcs11.so -i NOME_DO_ARQUIVO_ORIGINAL_COM_EXTENSÃO -o NOME_DO_ARQUIVO_ASSINADO -filter subject.contains:USER_DNItipSe você não souber o DNI associado ao certificado, execute o comando a seguir para ver o
subjectdo certificado e adicione qualquer parte dele que seja única para aquele certificado.pkcs11-tool --module /usr/lib/libkeyfactorpkcs11.so --list-objects --type certComo alternativa, use a interface gráfica para selecionar o certificado necessário.
autofirma sign -store pkcs11://usr/lib/libkeyfactorpkcs11.so -i NOME_DO_ARQUIVO_ORIGINAL_COM_EXTENSÃO -o NOME_DO_ARQUIVO_ASSINADO -certgui