Cómo firmar documentos con el agente desatendido usando AutoFirma
Resumen
Esta guía explica cómo firmar documentos usando el agente desatendido y AutoFirma. Es útil para administradores y desarrolladores que buscan mejorar las operaciones de firma.
Contexto
La firma desatendida o masiva se refiere a operaciones de firma automatizadas realizadas sin interacción del usuario. En este modo, los documentos se firman mediante servicios que acceden a las claves de firma necesarias de forma segura y automática. Este enfoque se usa para firmar documentos PDF, archivos XML (como facturas electrónicas) u otros archivos binarios cuando es necesario aplicar firmas en un servidor.
La firma desatendida requiere la instalación del agente Linux de Redtrust.
Redtrust solo es compatible con AutoFirma 1.8.4 o superior.
Antes de empezar
Antes de continuar con esta guía, debes tener:
- Un entorno Ubuntu.
- El agente Linux de Redtrust.
- AutoFirma instalado en tu instancia de Ubuntu.
- Un usuario de servicio con acceso al certificado que quieras usar y con acceso a una política que permita todas las aplicaciones y sitios o específicamente a la aplicación Java.
Cuando instales AutoFirma, necesitarás instalar Java y libnss3-tools usando estos comandos:
apt-cache search java | more
sudo apt install openjdk-11-jre
sudo apt install libnss3-tools
Ten en cuenta que el comando sudo apt –fix-broken install documentado en el enlace de AutoFirma puede no funcionar.
Pasos
-
Accede a tu máquina Linux donde está instalado el agente desatendido.
-
Comprueba que el agente está en ejecución.
systemctl status KeyfactorService.service -
Configura el agente con las credenciales del usuario de servicio que firmará los documentos.
keyfactor-setup hostname=IP_O_HOSTNAME clientid=CLIENT_ID username=NOMBRE_DE_USUARIO password=CONTRASEÑA loglevel=NIVEL_DE_LOGPor ejemplo, el comando para un usuario
cris@local.usersenagent01.example.comes:keyfactor-setup hostname=agent01.example.com clientid=T4N3r2WBbvKfyYe8/z+SVW5N= username=cris@local.users password=ChangeMe123 loglevel=LOWnotaloglevelrepresenta la cantidad de detalle que se incluirá en los logs. Valores válidos:NONE,LOW,HIGH. -
Firma los documentos con el siguiente comando. Este comando llama a AutoFirma e indica que use el módulo PKCS#11 de Redtrust como almacén de certificados.
autofirma sign -store pkcs11://usr/lib/libkeyfactorpkcs11.so -i NOMBRE_DEL_ARCHIVO_ORIGINAL_CON_EXTENSIÓN -o NOMBRE_ARCHIVO_FIRMADO -filter subject.contains:USER_DNItipSi no conoces el DNI asociado al certificado, ejecuta el siguiente comando para ver el
subjectdel certificado y añade cualquier parte del mismo que sea única para ese certificado.pkcs11-tool --module /usr/lib/libkeyfactorpkcs11.so --list-objects --type certComo alternativa, usa la interfaz gráfica para seleccionar el certificado que necesites.
autofirma sign -store pkcs11://usr/lib/libkeyfactorpkcs11.so -i NOMBRE_DEL_ARCHIVO_ORIGINAL_CON_EXTENSIÓN -o NOMBRE_ARCHIVO_FIRMADO -certgui