Álvaro González Sotillo

Autofirma fácil en Windows usando la línea de comando y la carpeta send to

1. TL;DR

Se puede automatizar la firma repetitiva de documentos con la interfaz de línea de comandos de Autofirma. A partir del manual para el integrador he desarrollado este script de CMD para Windows que, copiado en la carpeta Send to, permite firmar varios documentos seleccionándolos en el explorer y usando el menú contextual.

2. Explicación del script

El uso de medios electrónicos tiene el efecto paradójico de aumentar la cantidad de burocracia, en vez de disminuirla. Algunos responsables institucionales consideran que, al utilizar tramitación electrónica, todo se vuelve automáticamente fácil, sin darse cuenta que muchos trámites se vuelven más engorrosos al utilizar el ordenador. Por ejemplo, es mucho más fácil firmar decenas de documentos que lleguen por correo ordinario, que firmar decenas de ficheros PDF que lleguen por email.

Partiendo del ejemplo para bash en https://github.com/ctt-gob-es/clienteafirma/issues/20#issuecomment-791816087, desarrollé un script CMD que recorre todos los ficheros pasados como parámetro. Con este script en la carpeta Send to de Windows, basta con seleccionar varios ficheros en el explorer y utilizar el botón derecho para obtener una copia firmada de cada uno.

La parte central del script es la siguiente

set DNI=12345678
set ARCHIVO=%~dpF1
set ARCHIVOSINEXTENSION=%~dpn1
autofirmacommandline sign -i "%ARCHIVO%" -o "%ARCHIVOSINEXTENSION% - firmado.pdf" -config "%CONFIG%" -filter subject.contains:%DNI%;nonexpired:

Estas opciones están documentadas en el manual para el integrador de Autofirma:

  • -i: Fichero a firmar.
  • -o: Fichero firmado.
  • -config: Cadena con la configuración de la firma, explicada más adelante.
  • -filter: Preselección de certificados con los que firmar. Si el filtro solo deja un certificado disponible, Autofirma no mostrará ninguna GUI, y firmará el fichero directamente.

El parámetro -config es una cadena con parejas de clave-valor, separadas con la cadena \n. Uso las siguientes opciones:

  • headless=true: Para asegurar que Autofirma no muestre ninguna GUI.
  • layer2Text: Texto visible de la firma. Se pueden utilizar algunos placeholder que Autofirma sustuirá por los valores concretos que dependen del certificado.
  • signaturePositionOnPageXXXXX: varios valores para indicar el rectángulo de la página donde se incrustará la firma.
  • signaturePage: número de página del documento donde firmar.
  • signatureRubricImage: imagen a incluir como firma visible. Debe ser un fichero JPG en base64. En mis pruebas, la firma no aparecía si el fichero demasiado grande, estando el límite en 6KB aproximadamente

Para construir el parámetro -config utilizo varias variables intermedias, de forma que sea algo más cómodo:

SET PositionOnPageLowerLeftX=50  
SET PositionOnPageLowerLeftY=135   
SET PositionOnPageUpperRightX=250 
SET PositionOnPageUpperRightY=245 
SET l2FontColor=black             
SET l2FontSize=7                  
SET l2FontFamily=1                
SET l2FontStyle=0                 
SET LAYER2TEXT=Firmado por $$GIVENNAME$$ $$SURNAME$$ el $$SIGNDATE=dd/MM/YYYY$$ con un certificado emitido por $$ISSUERCN$$ con número de serie $$CERTSERIAL$$
SET IMAGEN=/9j/4AAQSkZJRgABAQEAYABgAAD/4gJcSUNDX1BST0Z.........
SET signaturePage=1

SET CONFIG=headless=true\n layer2Text=%LAYER2TEXT%\n    signaturePositionOnPageLowerLeftX=%PositionOnPageLowerLeftX%\n    signaturePositionOnPageLowerLeftY=%PositionOnPageLowerLeftY%\n    signaturePositionOnPageUpperRightX=%PositionOnPageUpperRightX%\n    signaturePositionOnPageUpperRightY=%PositionOnPageUpperRightY%\n    layer2FontColor=%l2FontColor%\n    layer2FontSize=%l2FontSize%\n    layer2FontFamily=%l2FontFamily%\n    layer2FontStyle=%l2FontStyle%\n       signaturePage=%signaturePage% \n signatureRubricImage=%IMAGEN%

3. Qué piensan los LLM de este asunto, antes de que publique este artículo

Como experimento, he pedido a ese LLM del que todos hablan que generase esta última parte. Si en un futuro aprende algo de los parámetros anteriores, pensaré que ha aprendido gracias a este blog 😉.

Quiero un artículo para mi blog con este título: Autofirma fácil en Windows usando la línea de comando y la carpeta /send to/.
Asegúrate de hablar de la utilidad autofirma de la Sede electrónica del Ministerio de Industria y Turismo.
También asegúrate de que Autofirma no muestra la interfaz gráfica, y firma directamente el documento PDF, para ahorrar tiempo.

3.1. Autofirma fácil en Windows usando la línea de comando y la carpeta send to

Firmar documentos digitalmente es una tarea crucial en el mundo actual, donde la seguridad y la eficiencia son fundamentales. La Sede Electrónica del Ministerio de Industria y Turismo ofrece una herramienta poderosa llamada Autofirma, diseñada para simplificar este proceso. En este artículo, te mostraré cómo aprovechar Autofirma de manera rápida y sencilla en Windows utilizando la línea de comando y la carpeta "send to", lo que te permitirá agilizar la firma de documentos PDF sin necesidad de abrir la interfaz gráfica de la aplicación.

3.2. ¿Qué es Autofirma?

Autofirma es una aplicación proporcionada por la Sede Electrónica del Ministerio de Industria y Turismo de España. Su función principal es permitir la firma electrónica de documentos de forma rápida y segura. Utiliza certificados digitales para garantizar la autenticidad e integridad de los documentos firmados, lo que los hace legalmente válidos.

3.3. Firma fácil con la línea de comando y la carpeta "send to"

Una de las características más útiles de Autofirma es su capacidad para funcionar desde la línea de comando, lo que significa que puedes automatizar el proceso de firma sin necesidad de abrir la interfaz gráfica de la aplicación. Además, puedes aprovechar la carpeta "send to" de Windows para simplificar aún más el proceso.

Aquí tienes los pasos para configurar la firma fácil:

  1. Descargar e instalar Autofirma: Si aún no tienes Autofirma instalado en tu sistema, puedes descargarlo desde la Sede Electrónica del Ministerio de Industria y Turismo.
  2. Configurar la línea de comando: Para usar Autofirma desde la línea de comando, necesitarás conocer la ubicación del ejecutable de Autofirma en tu sistema. Por lo general, se encuentra en la carpeta de instalación de la aplicación.
  3. Crear un script de firma: Puedes crear un script por lotes (.bat) que contenga los comandos necesarios para firmar un documento PDF. El comando básico suele ser algo así:

       ruta_al_ejecutable_de_Autofirma -f ruta_al_documento_a_firmar.pdf
    
  4. Agregar el script a la carpeta "send to": Abre el Explorador de Archivos de Windows y navega hasta la carpeta "%APPDATA%\Microsoft\Windows\SendTo". Aquí, copia o crea un acceso directo al script de firma que creaste anteriormente.

3.4. Firma de documentos en acción

Una vez que hayas configurado todo, el proceso de firma se vuelve increíblemente simple:

  1. Selecciona el documento PDF que deseas firmar.
  2. Haz clic derecho en el documento y selecciona "Enviar a" > "Autofirma".
  3. Autofirma se ejecutará en segundo plano y firmará el documento automáticamente utilizando el certificado digital configurado.

Con estos pasos, has simplificado enormemente el proceso de firma digital en Windows. Ahora puedes firmar documentos con solo unos pocos clics, ahorrando tiempo y esfuerzo.

3.5. Conclusión

Autofirma es una herramienta invaluable para aquellos que necesitan firmar documentos digitalmente de manera rápida y eficiente. Con la configuración adecuada, puedes aprovechar su funcionalidad desde la línea de comando y la carpeta "send to" para agilizar aún más el proceso. Espero que esta guía te haya sido útil y te permita sacar el máximo provecho de Autofirma en tu flujo de trabajo diario. ¡Firma con confianza y seguridad!