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:45] – [Firma visible en el documento] 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 25: | Línea 25: | ||
| <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 61: | Línea 61: | ||
| <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:/ |
| </ | </ | ||
| - | Script de bash: | ||
| - | <code bash> | + | ==== Firma visible en el documento |
| - | # | + | |
| - | # | + | |
| - | # Script para firmar documentos usando AutoFirma | + | |
| - | # | + | |
| - | # Joaquín Ferrero. 2022.11.08 | + | |
| - | # Joaquín Ferrero. 2021.03.06 | + | |
| - | # | + | |
| - | # Ejecutar: | + | |
| - | # | + | |
| - | # El resultado es otro documento con una coletilla en el nombre. | + | |
| - | # | + | |
| - | # ~/ | + | |
| - | # | + | |
| - | # 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 | + | Con la firma digital se firma el fichero completo y se **añade la firma en los metadatos** |
| - | ARCHIVO=$1 | + | |
| - | # Creamos | + | |
| - | ARCHIVOFIRMADO="${ARCHIVO/ | + | |
| - | # | + | |
| - | ### Personalización ####################################################################################### | + | Con la versión con interfaz gráfica es sencillo, pero para hacerlo desde línea |
| - | NIF=" | + | |
| - | DIR='/ | + | |
| - | STORE=" | + | |
| - | PASSWORD=" | + | |
| - | LOCATION=" | + | |
| - | ISSUERCN=" | + | |
| - | JAVADIR="/ | + | Si queremos que aparezca un texto con el nombre de la persona que firma el documento y la fecha: |
| - | AUTOFIRMA="/ | + | |
| - | # Personalizacion de la salida | + | <code bash> |
| - | FORMAT=" | + | autofirma sign -i documento.pdf -o documento_signed.pdf -store pkcs12: |
| + | signaturePositionOnPageLowerLeftY=130\n\ | ||
| + | signaturePositionOnPageUpperRightX=250\n\ | ||
| + | signaturePositionOnPageUpperRightY=245\n\ | ||
| + | signaturePage=1\n\ | ||
| + | layer2FontColor=black\n\ | ||
| + | layer2FontSize=8\n\ | ||
| + | layer2FontFamily=1\n\ | ||
| + | layer2FontStyle=0" | ||
| + | </ | ||
| - | # Posición de la firma visible | + | Si queremos firmar con una imagen (como una firma manuscrita): |
| - | PositionOnPageLowerLeftX=' | + | |
| - | PositionOnPageLowerLeftY=' | + | |
| - | PositionOnPageUpperRightX=' | + | |
| - | PositionOnPageUpperRightY=' | + | |
| - | # Fuente de letras | + | <code bash> |
| - | l2FontColor=' | + | autofirma sign -i documento.pdf |
| - | l2FontSize=' | + | signaturePositionOnPageLowerLeftX=50\n\ |
| - | l2FontFamily=' | + | signaturePositionOnPageLowerLeftY=130\n\ |
| - | l2FontStyle=' | + | signaturePositionOnPageUpperRightX=250\n\ |
| - | + | signaturePositionOnPageUpperRightY=245\n\ | |
| - | # Página | + | signaturePage=1" |
| - | signaturaPage=' | + | |
| - | + | ||
| - | # Rúbrica | + | |
| - | # Se crea con el comando: base64 | + | |
| - | #signatureRubricImage='... datos en base64 ...' | + | |
| - | # Otra forma: llamar al comando base64 directamente, | + | |
| - | signatureRubricImage=$(base64 -w 0 ~/Documentos/Empresa/Firmas/FIRMA_DEL_TESORERO.jpg) | + | |
| - | + | ||
| - | # Personalización de la firma visible en el documento | + | |
| - | # Estos son campos que AutoFirma rellenerá | + | |
| - | # $$SUBJECTCN$$ Nombre común (CN, Common Name) del titular del certificado de firma | + | |
| - | # $$ISSUERCN$$ Nombre común (CN, Common Name) del emisor del certificado de firma | + | |
| - | # $$CERTSERIAL$$ Número de serie del certificado de firma | + | |
| - | # $$SIGNDATE=PATRÓN$$ Fecha de la firma | + | |
| - | # $$GIVENNAME$$ Nombre del titular (G, Given Name) (podría estar vacío) | + | |
| - | # $$SURNAME$$ Apellidos del titular (SN, Surname) (podría estar vacío) | + | |
| - | # $$ORGANIZATION$$ Organización (O, Organization) (podría estar vacío) | + | |
| - | # $$REASON$$ Razón por la que se firma el PDF. (podría estar vacío) | + | |
| - | # $$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: | + | |
| - | # https:// | + | |
| - | # | + | |
| - | FECHA=" | + | |
| - | + | ||
| - | # Texto que queremos que aparezca en la firma | + | |
| - | # Este es un texto libre, pero debe entrecomillarse con comillas simples, ya que contiene caracteres ' | + | |
| - | LAYER2TEXT=' | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | 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\ | + | |
| - | | + | |
| - | layer2FontSize=$l2FontSize\n\ | + | |
| - | layer2FontFamily=$l2FontFamily\n\ | + | |
| - | layer2FontStyle=$l2FontStyle\n\ | + | |
| - | signatureRubricImage=$signatureRubricImage\n\ | + | |
| - | | + | |
| - | + | ||
| - | ### 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 de la otra solución. | + | |
| - | + | ||
| - | # 1º, con -filter, poner algo que esté dentro del certificado, | + | |
| - | + | ||
| - | $JAVADIR/ | + | |
| - | -i " | + | |
| - | -o " | + | |
| - | -store $STORE | + | |
| - | -format $FORMAT | + | |
| - | -password $PASSWORD | + | |
| - | -filter subject.contains: | + | |
| - | -config " | + | |
| - | + | ||
| - | 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/ | + | |
| - | + | ||
| - | $JAVADIR/ | + | |
| - | -i " | + | |
| - | -o " | + | |
| - | -store $STORE | + | |
| - | -format $FORMAT | + | |
| - | -password $PASSWORD | + | |
| - | -alias " | + | |
| - | -config " | + | |
| - | + | ||
| - | echo "" | + | |
| - | exit | + | |
| - | + | ||
| - | # FIN de firma.sh | + | |
| </ | </ | ||
| - | ==== Firma visible | + | <WRAP center round info 60%> |
| + | La imagen debe ser en formato JPEG. También puede indicarse directamente | ||
| + | </ | ||
| - | 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 " | ||
| - | |||
| - | Con la versión con interfaz gráfica es sencillo, pero para hacerlo desde línea de comandos hay que trabajarlo un poco. | ||
| ===== Validar / verificar firma ===== | ===== Validar / verificar firma ===== | ||
| Línea 234: | Línea 107: | ||
| * [[https:// | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
informatica/software/autofirma.1745052337.txt.gz · Última modificación: por tempwin
