Tabla de Contenidos
AutoFirma
Aplicación de firma electrónica desarrollada por el Ministerio de Asuntos Económicos y Transformación Digital de España. Al poder ser ejecutada desde el navegador, permite la firma en páginas de Administración Electrónica cuando se requiere la firma en un procedimiento administrativo. También se puede usar como aplicación independiente.
Con el programa AutoFirma puedes firmar documentos PDF, Word, Excel o PowerPoint mediante certificado digital.
Disponible para los siguientes sistemas operativos:
- Windows 7 o superior.
- macOS 10.11 o superior.
- Linux (kernel 2.6 o superior).
Instalación
Arch Linux
Paquete autofirma-bin.
Uso
Firma en línea de comandos
Probado para la versión 1.8.3 bajo Arch Linux:
autofirma sign -i documento.pdf -o documento_firmado.pdf -store pkcs12:/ruta/a/certificado_digital.p12 -filter subject.contains:<IDENTIFICADOR> -password <CONTRASEÑA_CERTIFICADO> -format pades
Para saber qué poner en la opción -filter, podemos usar openssl para ver los datos del certificado:
openssl pkcs12 -nokeys -info -in certificado-digital.p12 | grep -i subject
Por ejemplo, podríamos poner el DNI:
autofirma sign -i documento.pdf -o documento_firmado.pdf -store pkcs12:/ruta/a/certificado_digital.p12 -filter subject.contains:12345678Z -password <CONTRASEÑA_CERTIFICADO> -format pades
También podríamos buscar ese identificador utilizando keytool y fijándonos en lo que aparece en la sección Nombre de Alias:
keytool -list -v -keystore <certificado-digital.p12> | grep Alias
Ejemplo de salida:
Nombre de Alias: rodriguez_perez_manuel___12345678z
Otra forma de encontrar el lias es pasándole la opción listaliases a autofirma:
autofirma listaliases -store pkcs12:certificado-digital.p12
Si conocemos el alias del certificado que queremos usar, en lugar de la opción -filter podemos usar la opción -alias:
autofirma sign -i documento.pdf -o documento_firmado.pdf -store pkcs12:/ruta/a/certificado_digital.p12 -alias rodriguez_perez_manuel___12345678z -password <CONTRASEÑA_CERTIFICADO> -format pades
Firma visible en el documento
Con la firma digital se firma el fichero completo y se añade la firma en los metadatos por lo que no es necesario lo de firmar todas las páginas. Es cierto que Autofirma permite hacer visible en el PDF un “testigo” de la firma, pero lo importante no es eso si no los metadatos.
Con la versión con interfaz gráfica es sencillo, pero para hacerlo desde línea de comandos hay que trabajarlo un poco.
Si queremos que aparezca un texto con el nombre de la persona que firma el documento y la fecha:
autofirma sign -i documento.pdf -o documento_signed.pdf -store pkcs12:certificado-digital.p12 -alias rodriguez_perez_manuel___12345678z -password <CONTRASEÑA> -format pades -config "signaturePositionOnPageLowerLeftX=50\n\ signaturePositionOnPageLowerLeftY=130\n\ signaturePositionOnPageUpperRightX=250\n\ signaturePositionOnPageUpperRightY=245\n\ signaturePage=1\n\ layer2FontColor=black\n\ layer2FontSize=8\n\ layer2FontFamily=1\n\ layer2FontStyle=0"
Si queremos firmar con una imagen (como una firma manuscrita):
autofirma sign -i documento.pdf -o documento_signed.pdf -store pkcs12:certificado-digital.p12 -alias rodriguez_perez_manuel___12345678z -password <CONTRASEÑA> -format pades -config "signatureRubricImage=/home/tempwin/docs/firma_ejemplo.jpg\n\ signaturePositionOnPageLowerLeftX=50\n\ signaturePositionOnPageLowerLeftY=130\n\ signaturePositionOnPageUpperRightX=250\n\ signaturePositionOnPageUpperRightY=245\n\ signaturePage=1"
La imagen debe ser en formato JPEG. También puede indicarse directamente el Base 64 de la imagen. Para ello, ejecutamos el comando base64 -w 0 <archivo.jpg>
