En Chile, muchos trámites profesionales —desde documentos tributarios hasta escritos ante tribunales— exigen firma electrónica avanzada (FEA). La mayoría de las guías oficiales asumen que trabajas en Windows con el software del proveedor del certificado. Pero si tu entorno de trabajo es Linux, también es perfectamente posible.
Este artículo es una orientación general: busca que entiendas qué piezas intervienen y cómo se conectan, sin entrar en cada comando. El paso a paso detallado, para que tu IA de confianza la implemente está al final del artículo, en un documento markdown adjunto. Todo está basado en una implementación real sobre un eToken SafeNet 5110 en Arch Linux, usando JSignPDF como herramienta de firma.
Qué es y qué necesitas
La firma electrónica avanzada se apoya en un certificado digital emitido por una autoridad certificadora acreditada (en Chile, por ejemplo, Acepta o E-CERTCHILE). Ese certificado no vive en tu disco: se guarda dentro de un token criptográfico USB (el eToken), un dispositivo que custodia tu llave privada y nunca la deja salir. Cuando firmas, el documento se envía al token, este lo firma internamente y devuelve el resultado. Tu llave jamás toca el computador.
Para reproducir esto en Linux necesitas tres cosas: el token físico con tu certificado activo, el driver que permite a Linux hablar con él, y una aplicación de firma. Aquí usaremos JSignPDF.
Cómo se conectan las piezas
La cadena, de abajo hacia arriba, es más simple de lo que parece:
eToken USB
↓
pcscd (servicio del sistema que gestiona smart cards)
↓
driver PKCS#11 (la "traducción" entre el token y las aplicaciones)
↓
JSignPDF (la aplicación de firma)
El protocolo clave es PKCS#11, un estándar que define cómo las aplicaciones se comunican con dispositivos criptográficos. El driver del fabricante expone el token siguiendo ese estándar, y a partir de ahí cualquier programa compatible puede usarlo.
Un detalle que conviene tener presente desde ya: las aplicaciones registran el token al iniciarse. Si conectas el eToken después de abrir JSignPDF, lo más probable es que no lo vea. La regla práctica es siempre: token conectado primero, aplicación después.
Por qué JSignPDF
JSignPDF produce una firma visible: un recuadro con tu logo, tu nombre, el motivo, la fecha y la ubicación, al estilo de lo que se ve en documentos firmados con Adobe. Esto lo hace ideal cuando el documento será leído por terceros que esperan ver una marca clara de firma —clientes, contrapartes, instituciones—, sin perder nada de validez técnica: por debajo sigue siendo una firma criptográfica estándar.
Además es configurable: puedes mostrar solo el logo o logo más texto, ajustar el algoritmo de hash (conviene SHA256) e incluso añadir una imagen de fondo tipo certificado.
En resumen
Configurar firma electrónica avanzada en Linux tiene fama de complicado, pero en el fondo es solo una cadena de piezas bien definidas: el token guarda la llave, el driver lo traduce a un estándar común, y JSignPDF lo consume para producir una firma visible y válida. Una vez que entiendes ese flujo, el resto es seguir los pasos con cuidado y verificar en cada etapa.
La recompensa es un entorno de firma completamente funcional, sin Windows, sin máquinas virtuales y sin licencias adicionales —y con la tranquilidad de que tu llave privada nunca sale del dispositivo.
Adjunto: paso a paso para implementarlo
Se adjunta un documento técnico complementario con el procedimiento completo, comando por comando. Está redactado específicamente para ser entregado a un asistente de IA: tú puedes pasárselo a la IA de tu preferencia para que te guíe (o ejecute) la instalación en tu propio equipo, paso a paso.
El adjunto incluye la instalación de paquetes, la detección del token, el registro de los certificados raíz, la configuración de JSignPDF y un árbol de resolución de problemas. Los pasos que requieren tu intervención —conectar el token o ingresar tu PIN— están marcados de forma explícita para que la IA te los solicite en el momento adecuado y nunca manipule datos sensibles.