sgcSign Server

Un daemon de firma de código remoto autoalojado que envuelve el motor de sgcSign tras una API REST, una consola de administración web Bootstrap y pipelines CI/CD listos para usar.

API REST + panel web
7 formatos de firma
Proyectos multi-tenant
Registro de auditoría con cadena hash

Qué obtienes

Un único host Windows acepta solicitudes de firma de agentes de build, desarrolladores y pipelines CI — con auditoría completa, aprobaciones y métricas integradas.

API REST

Endpoints /api/v1 protegidos con TLS para firma, verificación, comprobación de estado, métricas y flujos de aprobación. Contrato estable y orientado a máquinas para agentes de build y SDK.

Consola de administración web

Interfaz /admin basada en Bootstrap para usuarios, claves API, proveedores, proyectos, auditoría, aprobaciones, webhooks y métricas. Los operadores nunca necesitan editar JSON.

Instalador como servicio Windows

Asistente Inno Setup o despliegue por ZIP. El daemon se registra como servicio Windows, termina TLS por sí mismo y se ejecuta sin atención en un host endurecido.

Proyectos multi-tenant

Cada proyecto aísla un subconjunto de proveedores, claves API, visibilidad de auditoría y colas de aprobación. Varios equipos comparten un único servidor sin ver el material de firma del otro.

Flujo de aprobación en dos pasos

La misma clave API solicita, un administrador o admin de proyecto aprueba o rechaza, y solo entonces se firman los bytes. El hash SHA-256 y el tamaño del archivo se bloquean en la solicitud.

Registro de auditoría SHA-256

Cada acción — firma, verificación, inicio de sesión, aprobación, disparo de webhook — se añade a un registro de auditoría encadenado por hash. La manipulación es detectable; el scraping desde un SIEM es directo.

Métricas Prometheus

Contadores de firma / verificación / aprobación, histogramas de latencia de firma, indicadores de disponibilidad de proveedores. Exposición directa en formato texto Prometheus 0.0.4, sin base de datos adicional que gestionar.

Webhooks firmados con HMAC

13 eventos de ciclo de vida entregados con X-Sgcsign-Signature: sha256=…. La cola de reintentos en tres pasos mantiene sincronizados los sistemas SIEM, de chat y de tickets.

XAdES · PAdES · CAdES

El mismo motor que se distribuye en la biblioteca, expuesto a través de la API REST. Cada perfil por país, cada nivel de firma.

XAdES

Firmas XML para VeriFactu, FatturaPA, Facturae, KSeF, e-Factura, Peppol, myDATA y contratos laborales de la UE. POST /api/v1/sign/xades.

PAdES

Firmas PDF PAdES-Basic con actualizaciones incrementales que conservan el contenido original. Firmas visibles o invisibles. POST /api/v1/sign/pades.

CAdES

Firmas CMS / PKCS#7 detached o attached para datos binarios arbitrarios. Sello de tiempo + validación a largo plazo. POST /api/v1/sign/cades.

Authenticode, ClickOnce, NuGet, VSIX

El daemon de firma habla con la fuente de certificados que configures: almacén de Windows, PFX, token hardware PKCS#11, Azure Trusted Signing, AWS KMS o Google KMS.

Authenticode

Firma .exe, .dll, .msi, .cab, .cat, .ocx, .sys. El modo solo-hash permite que los runners con poco ancho de banda intercambien unas pocas decenas de bytes a cambio de un blob PKCS#7 de 8 KB.

ClickOnce

Firma manifiestos ClickOnce (.application / .manifest) para que los clientes Windows instalen sin avisos de confianza. POST /api/v1/sign/clickonce.

Paquetes NuGet

Firma paquetes .nupkg para que el cliente NuGet valide la identidad del editor. Compatible con firmas de autor y de repositorio. POST /api/v1/sign/nuget.

Extensiones VSIX

Firma paquetes de extensión de Visual Studio para que el VS Marketplace y el propio IDE los acepten como confiables. POST /api/v1/sign/vsix.

Listo para todos los grandes pipelines

Los agentes de build llaman a un endpoint REST estable en lugar de instalar certificados de firma en cada runner.

GitHub Actions

Una acción compuesta publica el artefacto en la API REST del servidor. El token emitido por el panel web, limitado a un proyecto, no sale del almacén de secretos del runner.

Azure DevOps

La tarea de pipeline ejecuta la CLI cliente de sgcSign, que sube el binario, sondea la aprobación si es necesaria y descarga el resultado firmado — todo en un solo paso.

Jenkins

Fragmento de pipeline declarativo usando curl o la CLI incluida. Funciona con agentes Linux y Windows; la firma aparece como artefacto de build.

Docker

Imagen con el daemon y una configuración de proveedor de ejemplo. Ejecuta el contenedor, monta tu cert TLS y los secretos del proveedor y tendrás un servicio de firma portable.

Helm Chart

Despliega en Kubernetes para una firma totalmente redundante y escalada. Combínalo con un KMS en la nube (Azure Trusted Signing, AWS KMS, Google KMS) para tener pods sin claves locales.

Cómo encajan las piezas

Un único servicio Windows termina TLS, expone /api/v1 + /admin y consulta el proveedor de claves configurado en cada llamada. El material de claves nunca vive en la base de datos.

Un solo binario, tres interfaces

  • Los agentes de build llaman a /api/v1 sobre HTTPS con una clave API tipo bearer.
  • Los operadores inician sesión en /admin desde cualquier navegador. Interfaz Bootstrap, cookies de sesión y control de acceso basado en roles.
  • Los proveedores de claves se consultan bajo demanda en PFX, almacén de Windows, PKCS#11, Azure TS, AWS KMS, GCloud KMS, Vault, Certum o CSC v2.
  • La base de datos SQLite almacena usuarios, claves API, registro de auditoría, sesiones y cola de webhooks. Nunca el material de claves en sí.
  • Los webhooks se disparan de forma asíncrona hacia los sistemas SIEM y de chat en cada evento auditado.
topology.txt
                +----------------------------+
                |   Build agents / CI / CLI  |
                +-------------+--------------+
                              |
                              | HTTPS (TLS 1.2/1.3)
                              v
        +-------------------------------------------+
        |   sgcSignServer.exe   (Windows service)   |
        |   /api/v1/*    (signing, verify, health)  |
        |   /admin/*     (web console, sessions)    |
        +---+-----------------+---------------------+
            |                 |                |
            v                 v                v
     +-------------+   +---------------+   +-----------+
     |  SQLite DB  |   | KeyProviders  |   |  Webhooks |
     | (audit/keys)|   | PFX/HSM/KMS   |   | (outbound)|
     +-------------+   +---------------+   +-----------+

A un curl de distancia

Una clave API tipo bearer, una subida multipart y el binario firmado vuelve por stdout. Authenticode, CAdES, PAdES, XAdES, ClickOnce, NuGet y VSIX comparten la misma forma.

Firma un .exe en una sola llamada

  • X-API-Key o Authorization: Bearer — cualquiera de los dos métodos de auth funciona.
  • X-Project selecciona el tenant; la clave debe estar autorizada para el proyecto.
  • La respuesta lleva X-Sgcsign-Signer-Subject + X-Sgcsign-Duration-Ms para correlacionar logs.
  • Modo solo-hash para Authenticode: envía el SHA-256 y recibe un blob PKCS#7 minúsculo.
sign-binary.sh
# Authenticode-sign MyApp.exe via the REST API
curl -X POST https://sign.example.com/api/v1/sign \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-Project: production" \
  -F "format=authenticode" \
  -F "file=@./MyApp.exe" \
  -o MyApp-signed.exe

# Headers returned by the server
# X-Sgcsign-Signer-Subject: CN=ACME Corp, O=ACME, C=US
# X-Sgcsign-Duration-Ms: 312

Tres pasos hasta un binario firmado

De un host Windows recién instalado al primer artefacto firmado en menos de cinco minutos.

1

Instalar

Ejecuta el asistente Inno Setup incluido o copia el ZIP en una carpeta. El daemon se registra como servicio Windows con el nombre sgcSignServer. Lo asocias al puerto :8443 y cargas tu certificado TLS.

2

Configurar un proveedor de claves

Añade un proveedor a sgcSignServer.conf.json — un archivo PFX, una cuenta Azure Trusted Signing, una clave AWS KMS, un usuario Certum SimplySign o cualquiera de los otros diez proveedores de claves. No se requiere reiniciar el servicio.

3

Emitir un token y llamar a la API

Abre /admin/apikeys, haz clic en Nueva clave API, limítala a un proyecto y copia el token en el almacén de secretos de tu runner CI. El agente de build llama a POST /api/v1/sign.

Centraliza la firma en toda tu build farm

Deja de copiar certificados de firma en cada agente de build. Un sgcSign Server, un endpoint REST y auditoría y aprobaciones completas.