Configuracion del Motor SSigner
Archivo de Propiedades Completo
El motor utiliza ssigner.properties para configurar todos los aspectos de la firma digital.
# =============================================================================
# PROXY
# =============================================================================
proxy.url=
proxy.puerto=
proxy.usuario=
proxy.clave=
# =============================================================================
# REPOSITORIO DE CLAVES
# =============================================================================
firma.separador=>
firma.repositorio=Windows-My
firma.repositorio.pkcs12.archivo=
firma.repositorio.pkcs12.clave=
firma.repositorio.pkcs11.libreria=
firma.repositorio.pkcs11.clave=
firma.alias=
# =============================================================================
# APARIENCIA DE LA FIRMA
# =============================================================================
firma.visible=true
firma.motivo=
firma.locacion=
firma.norepudio=true
firma.pagina=1
firma.paginas.varias=false
firma.algoritmo=SHA256
firma.tipo=1
firma.estilo=0
firma.texto=Firmado por [CN]
firma.texto.fuente=Helvetica
firma.texto.tamanio=7
firma.texto.alineacion.horizontal=LEFT
firma.texto.alineacion.vertical=TOP
firma.imagen=firma.png
firma.imagen.fondo=firma-fondo.png
firma.imagen.alineacion.horizontal=CENTER
firma.imagen.alineacion.vertical=MIDDLE
firma.imagen.maximo.ancho=0
firma.imagen.maximo.alto=0
firma.imagen.mantener.proporcion=true
firma.imagen.modo=escalar
firma.x=0
firma.y=0
firma.x1=200
firma.y1=100
firma.posicion.relativa=
firma.etiqueta=
firma.campo.alineacion.horizontal=LEFT
firma.campo.alineacion.vertical=TOP
firma.espacio.texto.imagen=10
firma.padding.texto.top=0
firma.padding.texto.right=0
firma.padding.texto.bottom=0
firma.padding.texto.left=5
firma.padding.imagen.top=0
firma.padding.imagen.right=5
firma.padding.imagen.bottom=0
firma.padding.imagen.left=0
firma.multipliedLeading=0.85
firma.cerrar=false
firma.fecha.hora=
firma.fecha.hora.formato=yyyy.MM.dd HH:mm:ss z
firma.sufijo=
firma.cifrado=
# =============================================================================
# CARPETAS
# =============================================================================
firma.carpeta.entrada=/ruta/entrada
firma.carpeta.salida=/ruta/salida
firma.carpeta.cache=/ruta/cache
firma.carpeta.imagen=/ruta/imagenes
firma.carpeta.config=/ruta/config
documento=list.txt
# =============================================================================
# TIME STAMPING AUTHORITY (TSA)
# =============================================================================
tsa.habilitar=0
tsa.url=<TSA_URL>
tsa.usuario=<TSA_USER>
tsa.clave=<TSA_PASSWORD>
# =============================================================================
# CERTIFICADO Y VALIDACION
# =============================================================================
certificado.validar=true
certificado.validar.limite=1
certificado.validar.crl=false
certificado.validar.ocsp=false
certificado.validar.tsl=false
tsl.urls=<TSL_URL>
# =============================================================================
# GLOSA
# =============================================================================
glosa.habilitar=true
glosa.url=<GLOSA_URL>
glosa.contenido=Esta es una representacion impresa cuya autenticidad...
glosa.barras.habilitar=false
glosa.qr.habilitar=true
glosa.margen.superior=50
glosa.margen.inferior=50
glosa.margen.izquierdo=50
glosa.margen.derecho=50
glosa.ancho.porcentaje=80
glosa.padding.celda.top=8
glosa.padding.celda.left=10
glosa.padding.celda.qr=0
glosa.padding.celda.barra=1
# =============================================================================
# CODIGOS DE BARRAS Y QR
# =============================================================================
qr.ancho=80
qr.alto=80
barra.ancho=0.8
barra.alto=25
barra.baseline=10
# =============================================================================
# FUENTE
# =============================================================================
fuente.tamanio.minimo=3
fuente.tamanio.maximo=30
fuente.tamanio.default=7
# =============================================================================
# COORDENADAS
# =============================================================================
firma.coordenadas.unidad=pixeles
firma.coordenadas.convertir.desde.pixeles=true
# =============================================================================
# LOGGING
# =============================================================================
ssigner.log.level=info
Propiedades Detalladas
Proxy
| Propiedad | Descripcion |
proxy.url | URL del proxy |
proxy.puerto | Puerto del proxy |
proxy.usuario | Usuario del proxy |
proxy.clave | Contraseña del proxy |
Repositorio de Claves
| Propiedad | Valores | Descripcion |
firma.repositorio | Windows-My, PKCS11, PKCS12 | Tipo de keystore |
firma.repositorio.pkcs11.libreria | Ruta | Path a librería PKCS11 |
firma.repositorio.pkcs11.clave | String | PIN del token/HSM |
firma.repositorio.pkcs12.archivo | Ruta | Archivo .p12 o .pfx |
firma.repositorio.pkcs12.clave | String | Contraseña del archivo |
firma.alias | String | Alias del certificado |
firma.separador | String | Separador de valores (por defecto >) |
Apariencia de la Firma
| Propiedad | Valores | Descripcion |
firma.visible | true, false | Si la firma es visible |
firma.motivo | String | Motivo de la firma |
firma.locacion | String | Ubicacion de la firma |
firma.norepudio | true, false | Incluir extension non-repudiation |
firma.pagina | Integer | Página de la firma |
firma.paginas.varias | true, false | Todas las páginas o solo una |
firma.algoritmo | SHA256, SHA384, SHA512 | Algoritmo de hash |
firma.tipo | 1, 2 | 1=PAdES, 2=CAdES |
firma.estilo | 0-8 | Estilo de apariencia |
firma.texto | String | Texto con placeholders |
firma.texto.fuente | String | Nombre de fuente |
firma.texto.tamanio | Integer | Tamaño de fuente |
firma.texto.alineacion.horizontal | LEFT, CENTER, RIGHT, JUSTIFIED | Alineacion horizontal del texto |
firma.texto.alineacion.vertical | TOP, MIDDLE, BOTTOM | Alineacion vertical del texto |
firma.ltv | true, false | Habilitar LTV (Long Term Validation) |
Imagen de Firma
| Propiedad | Valores | Descripcion |
firma.imagen | String | Archivo de imagen de firma |
firma.imagen.fondo | String | Imagen de fondo (estilo 6) |
firma.imagen.alineacion.horizontal | LEFT, CENTER, RIGHT | Alineacion horizontal de la imagen |
firma.imagen.alineacion.vertical | TOP, MIDDLE, BOTTOM | Alineacion vertical de la imagen |
firma.imagen.maximo.ancho | Integer | Ancho maximo (0=sin limite) |
firma.imagen.maximo.alto | Integer | Alto maximo (0=sin limite) |
firma.imagen.mantener.proporcion | true, false | Mantener proporcion |
firma.imagen.modo | escalar, recortar, ajustar | Modo de ajuste de imagen |
Posicionamiento
| Propiedad | Valores | Descripcion |
firma.x | Integer | Coordenada X inferior izquierda |
firma.y | Integer | Coordenada Y inferior izquierda |
firma.x1 | Integer | Coordenada X superior derecha |
firma.y1 | Integer | Coordenada Y superior derecha |
firma.posicion.relativa | String | Posicionamiento relativo |
firma.etiqueta | String | Etiqueta para buscar coordenadas |
firma.campo.alineacion.horizontal | LEFT, CENTER, RIGHT | Alineacion horizontal del campo |
firma.campo.alineacion.vertical | TOP, MIDDLE, BOTTOM | Alineacion vertical del campo |
Espaciado y Padding
| Propiedad | Descripcion |
firma.espacio.texto.imagen | Espacio entre texto e imagen |
firma.padding.texto.top | Padding superior del texto |
firma.padding.texto.right | Padding derecho del texto |
firma.padding.texto.bottom | Padding inferior del texto |
firma.padding.texto.left | Padding izquierdo del texto |
firma.padding.imagen.top | Padding superior de la imagen |
firma.padding.imagen.right | Padding derecho de la imagen |
firma.padding.imagen.bottom | Padding inferior de la imagen |
firma.padding.imagen.left | Padding izquierdo de la imagen |
firma.multipliedLeading | Factor de interlineado |
Fecha y Hora
| Propiedad | Valores | Descripcion |
firma.cerrar | true, false | Cerrar documento despues de firmar |
firma.fecha.hora | String | Fuerza una fecha/hora especifica |
firma.fecha.hora.formato | String | Formato de fecha (default: yyyy.MM.dd HH:mm:ss z) |
Archivo
| Propiedad | Descripcion |
firma.sufijo | Sufijo para archivo firmado (ej: _firmado) |
firma.cifrado | Tipo de cifrado |
Carpetas
| Propiedad | Descripcion |
firma.carpeta.entrada | Documentos a firmar |
firma.carpeta.salida | Documentos firmados |
firma.carpeta.cache | Archivos temporales |
firma.carpeta.imagen | Imagenes de firma |
firma.carpeta.config | Archivos de configuracion |
documento | Archivo con lista de documentos |
TSA (Time Stamping Authority)
| Propiedad | Descripcion |
tsa.habilitar | 0=deshabilitado, 1=habilitado |
tsa.url | URL del servidor TSA |
tsa.usuario | Usuario TSA (cifrado AES) |
tsa.clave | Contraseña TSA (cifrado AES) |
Validacion de Certificados
| Propiedad | Valores | Descripcion |
certificado.validar | true, false | Habilitar validacion |
certificado.validar.crl | true, false | Validar contra CRL |
certificado.validar.ocsp | true, false | Validar contra OCSP |
certificado.validar.tsl | true, false | Validar contra TSL |
certificado.validar.limite | Integer | Limite de validacion en cadena |
tsl.urls | URLs | URLs de TSL (pipe separado) |
Glosa
| Propiedad | Descripcion |
glosa.habilitar | 0=deshabilitado, 1=habilitado |
glosa.url | URL de verificacion |
glosa.contenido | Texto de la glosa |
glosa.barras.habilitar | Mostrar codigo de barras |
glosa.qr.habilitar | Mostrar codigo QR |
glosa.margen.superior | Margen superior |
glosa.margen.inferior | Margen inferior |
glosa.margen.izquierdo | Margen izquierdo |
glosa.margen.derecho | Margen derecho |
glosa.ancho.porcentaje | Ancho del recuadro (% del页) |
glosa.padding.celda.top | Padding superior de celda |
glosa.padding.celda.left | Padding izquierdo de celda |
glosa.padding.celda.qr | Padding del QR |
glosa.padding.celda.barra | Padding de la barra |
Codigos de Barras y QR
| Propiedad | Descripcion |
qr.ancho | Ancho del QR en puntos |
qr.alto | Alto del QR en puntos |
barra.ancho | Ancho de barra |
barra.alto | Alto de barra |
barra.baseline | Baseline |
Fuente
| Propiedad | Descripcion |
fuente.tamanio.minimo | Tamaño minimo de fuente |
fuente.tamanio.maximo | Tamaño maximo de fuente |
fuente.tamanio.default | Tamaño por defecto |
Coordenadas
| Propiedad | Valores | Descripcion |
firma.coordenadas.unidad | puntos, pixeles | Unidad de medida |
firma.coordenadas.convertir.desde.pixeles | true, false | Convertir desde pixels |
Logging
| Propiedad | Valores | Descripcion |
ssigner.log.level | debug, info, warn, error | Nivel de logging |
Estilos de Apariencia
| Estilo | Descripcion |
| 0 | Solo texto |
| 1 | Solo imagen |
| 2 | Texto con imagen a la derecha |
| 3 | Texto con imagen a la izquierda |
| 4 | Texto con imagen arriba |
| 5 | Texto con imagen abajo |
| 6 | Texto con imagen de fondo |
| 7 | Nombre del firmante y descripcion |
| 8 | Texto con imagen a la izquierda (% personalizados) |
Placeholders de Texto
| Placeholder | Descripcion |
[CN] | Common Name del certificado |
[O] | Organizacion |
[OU] | Unidad organizacional |
[T] | Title |
[C] | Pais |
[ST] | Estado/Provincia |
[S] | Estado (alias) |
[L] | Localidad |
[STREET] | Calle |
[E] | Email |
[MOTIVO] | Motivo de firma |
[LOCACION] | Ubicacion |
[FECHA] | Fecha (dd/MM/yyyy) |
[HORA] | Hora (HH:mm:ss) |
[FECHA_HORA] | Fecha y hora |
Normalizacion Motor 2.5.2
El motor 2.5.2 normaliza valores booleanos:
| Valor Input | Normalizado |
"1", "true" | true |
"0", "false" | false |
La API REST aplica defaults del motor 2.5.2 automaticamente cuando no se especifican propiedades.