informatica:software:autofirma
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| informatica:software:autofirma [2025/04/19 10:14] – tempwin | informatica:software:autofirma [2025/04/19 14:22] (actual) – [Recursos] tempwin | ||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| ====== AutoFirma ====== | ====== AutoFirma ====== | ||
| - | Aplicación de [[life: | + | Aplicación de [[life: |
| Con el programa AutoFirma puedes firmar documentos PDF, Word, Excel o PowerPoint mediante [[life: | Con el programa AutoFirma puedes firmar documentos PDF, Word, Excel o PowerPoint mediante [[life: | ||
| Línea 20: | Línea 20: | ||
| ===== Uso ===== | ===== Uso ===== | ||
| - | ==== Firma en línea de comandos ==== | + | ===== Firma en línea de comandos |
| Probado para la versión 1.8.3 bajo Arch Linux: | Probado para la versión 1.8.3 bajo Arch Linux: | ||
| <code bash> | <code bash> | ||
| - | autofirma sign -i documento.pdf -o documento_firmado.pdf -store pkcs12:/ | + | autofirma sign -i documento.pdf -o documento_firmado.pdf -store pkcs12:/ |
| </ | </ | ||
| Línea 37: | Línea 37: | ||
| <code bash> | <code bash> | ||
| - | autofirma sign -i documento.pdf -o documento_firmado.pdf -store pkcs12:/ | + | autofirma sign -i documento.pdf -o documento_firmado.pdf -store pkcs12:/ |
| </ | </ | ||
| Línea 50: | Línea 50: | ||
| < | < | ||
| Nombre de Alias: rodriguez_perez_manuel___12345678z | Nombre de Alias: rodriguez_perez_manuel___12345678z | ||
| - | |||
| </ | </ | ||
| - | Script | + | Otra forma de encontrar el lias es pasándole la opción '' |
| <code bash> | <code bash> | ||
| - | # | + | autofirma listaliases -store pkcs12:certificado-digital.p12 |
| - | # | + | </code> |
| - | # Script para firmar documentos usando AutoFirma | + | |
| - | # | + | |
| - | # Joaquín Ferrero. 2022.11.08 | + | |
| - | # Joaquín Ferrero. 2021.03.06 | + | |
| - | # | + | |
| - | # Ejecutar: | + | |
| - | # Pasar el documento PDF a firmar como parámetro. | + | |
| - | # El resultado es otro documento con una coletilla en el nombre. | + | |
| - | # | + | |
| - | # ~/bin/ | + | |
| - | # | + | |
| - | # Personalización básica: | + | |
| - | # * NIF | + | |
| - | # * Nombre del archivo .p12 con la firma digital. | + | |
| - | # * Contraseña para acceder a ese archivo. | + | |
| - | # * Posición de la firma en la página. | + | |
| - | # Se usa el truco de hacerlo primero con AutoFirma y luego | + | |
| - | # ver qué valores utiliza mirando el final del archivo AUTOFIRMA.afirma.log.xml. | + | |
| - | # * Imagen de una firma digitalizada. Opcional. | + | |
| - | # El mismo truco que el anterior. | + | |
| - | # * ERROR: No funciona la plantilla $$LOCATION$$, | + | |
| - | # * Como no me gustaba el texto por defecto de $$ISSUERCN$$, | + | |
| - | # | + | |
| - | # Leemos | + | Si conocemos |
| - | ARCHIVO=$1 | + | |
| - | # Creamos el nombre del archivo resultado | + | |
| - | ARCHIVOFIRMADO=" | + | |
| - | # | + | |
| - | ### Personalización ####################################################################################### | + | <code bash> |
| - | NIF=" | + | autofirma sign -i documento.pdf -o documento_firmado.pdf -store |
| - | DIR='/ | + | </ |
| - | STORE=" | + | |
| - | PASSWORD=" | + | |
| - | LOCATION=" | + | |
| - | ISSUERCN=" | + | |
| - | JAVADIR="/ | ||
| - | AUTOFIRMA="/ | ||
| - | # Personalizacion de la salida | ||
| - | FORMAT=" | ||
| - | # Posición de la firma visible | + | ==== Firma visible |
| - | PositionOnPageLowerLeftX=' | + | |
| - | PositionOnPageLowerLeftY=' | + | |
| - | PositionOnPageUpperRightX=' | + | |
| - | PositionOnPageUpperRightY=' | + | |
| - | # Fuente | + | 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 " |
| - | l2FontColor=' | + | |
| - | l2FontSize=' | + | |
| - | l2FontFamily=' | + | |
| - | l2FontStyle=' | + | |
| - | # Página | + | Con la versión con interfaz gráfica es sencillo, pero para hacerlo desde línea de comandos hay que trabajarlo un poco. |
| - | signaturaPage=' | + | |
| - | # Rúbrica o imagen a añadir, opcional | + | Si queremos que aparezca un texto con el nombre de la persona que firma el documento |
| - | # Se crea con el comando: base64 -w 0 < | + | |
| - | # | + | |
| - | # Otra forma: llamar al comando base64 directamente, | + | |
| - | signatureRubricImage=$(base64 -w 0 ~/ | + | |
| - | # Personalización de la firma visible en el documento | + | <code bash> |
| - | # Estos son campos que AutoFirma rellenerá | + | autofirma sign -i documento.pdf -o documento_signed.pdf -store pkcs12:certificado-digital.p12 -alias rodriguez_perez_manuel___12345678z -password < |
| - | # $$SUBJECTCN$$ Nombre común (CN, Common Name) del titular del certificado | + | signaturePositionOnPageLowerLeftY=130\n\ |
| - | # $$ISSUERCN$$ Nombre común (CN, Common Name) del emisor del certificado de firma | + | signaturePositionOnPageUpperRightX=250\n\ |
| - | # $$CERTSERIAL$$ Número de serie del certificado de firma | + | signaturePositionOnPageUpperRightY=245\n\ |
| - | # $$SIGNDATE=PATRÓN$$ Fecha de la firma | + | signaturePage=1\n\ |
| - | # $$GIVENNAME$$ Nombre del titular (G, Given Name) (podría estar vacío) | + | layer2FontColor=black\n\ |
| - | # $$SURNAME$$ Apellidos del titular (SN, Surname) (podría estar vacío) | + | layer2FontSize=8\n\ |
| - | # $$ORGANIZATION$$ Organización (O, Organization) (podría estar vacío) | + | layer2FontFamily=1\n\ |
| - | # $$REASON$$ Razón por la que se firma el PDF. (podría estar vacío) | + | layer2FontStyle=0" |
| - | # $$LOCATION$$ Ciudad en la que se firma el PDF. (podría estar vacío) | + | </ |
| - | # $$CONTACT$$ Información de contacto del firmante del PDF. (podría estar vacío) | + | |
| - | # Formato del campo de la fecha: | + | Si queremos firmar con una imagen (como una firma manuscrita): |
| - | # https:// | + | |
| - | # | + | |
| - | FECHA=" | + | |
| - | # Texto que queremos que aparezca en la firma | + | <code bash> |
| - | # Este es un texto libre, pero debe entrecomillarse con comillas simples, ya que contiene caracteres ' | + | autofirma sign -i documento.pdf -o documento_signed.pdf -store pkcs12: |
| - | LAYER2TEXT='En ' | + | signaturePositionOnPageLowerLeftX=50\n\ |
| + | signaturePositionOnPageLowerLeftY=130\n\ | ||
| + | signaturePositionOnPageUpperRightX=250\n\ | ||
| + | signaturePositionOnPageUpperRightY=245\n\ | ||
| + | signaturePage=1" | ||
| + | </ | ||
| + | <WRAP center round info 60%> | ||
| + | La imagen debe ser en formato JPEG. También puede indicarse directamente el Base 64 de la imagen. Para ello, ejecutamos el comando '' | ||
| + | </ | ||
| + | ===== Validar / verificar firma ===== | ||
| + | * [[https:// | ||
| + | ===== Recursos ===== | ||
| - | + | * [[https:// | |
| - | + | * [[https://github.com/ | |
| - | + | * [[https://informaticadantesca.blogspot.com/ | |
| - | + | * [[https:// | |
| - | + | * [[https:// | |
| - | + | ||
| - | + | ||
| - | Firma digital de $$GIVENNAME$$ $$SURNAME$$ | + | |
| - | Certificado emitido por ' | + | |
| - | $$ORGANIZATION$$' | + | |
| - | + | ||
| - | # Configuración que espera AutoFirma | + | |
| - | CONFIG=" | + | |
| - | signaturePositionOnPageLowerLeftX=$PositionOnPageLowerLeftX\n\ | + | |
| - | signaturePositionOnPageLowerLeftY=$PositionOnPageLowerLeftY\n\ | + | |
| - | signaturePositionOnPageUpperRightX=$PositionOnPageUpperRightX\n\ | + | |
| - | signaturePositionOnPageUpperRightY=$PositionOnPageUpperRightY\n\ | + | |
| - | layer2FontColor=$l2FontColor\n\ | + | |
| - | layer2FontSize=$l2FontSize\n\ | + | |
| - | layer2FontFamily=$l2FontFamily\n\ | + | |
| - | layer2FontStyle=$l2FontStyle\n\ | + | |
| - | signatureRubricImage=$signatureRubricImage\n\ | + | |
| - | signaturePage=$signaturaPage" | + | |
| - | + | ||
| - | ### Fin de la personalización ############################################################################# | + | |
| - | + | ||
| - | # Aquí se hace la firma | + | |
| - | # Se puede hacer de varias maneras. Aquí hay dos que he encontrado. | + | |
| - | # Escoger aquella que mejor se ajuste al contenido del almacén, y comentar las líneas | + | |
| - | + | ||
| - | # 1º, con -filter, poner algo que esté dentro del certificado, | + | |
| - | + | ||
| - | $JAVADIR/java -jar $AUTOFIRMA sign \ | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | + | ||
| - | echo "" | + | |
| - | exit | + | |
| - | + | ||
| - | # 2º, con -alias, para encontrar el certificado dentro del almacén .p12 | + | |
| - | # primero llamamos a AutoFirma para pedir los alias de un determinado almacén | + | |
| - | ALIASES=$($JAVADIR/java -jar $AUTOFIRMA listaliases -store $STORE -password $PASSWORD) | + | |
| - | + | ||
| - | $JAVADIR/java -jar $AUTOFIRMA sign \ | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | -password $PASSWORD | + | |
| - | -alias " | + | |
| - | | + | |
| - | + | ||
| - | echo "" | + | |
| - | exit | + | |
| - | + | ||
| - | # FIN de firma.sh | + | |
| - | </ | + | |
informatica/software/autofirma.1745050446.txt.gz · Última modificación: por tempwin
