sgcSign Server

Een self-hosted remote code-ondertekendaemon die de sgcSign-engine verpakt achter een REST-API, een Bootstrap-webadmin-console en kant-en-klare CI/CD-pipelines.

REST-API + webadmin
7 handtekeningformaten
Multi-tenant-projecten
Hash-chained audit log

Wat je krijgt

Eén Windows-host accepteert ondertekenverzoeken van build-agents, ontwikkelaars en CI-pipelines — met volledige audit, goedkeuringen en metrics ingebouwd.

REST API

TLS-secured /api/v1 endpoints for signing, verification, health, metrics, and approval workflows. Stable, machine-friendly contract for build agents and SDKs.

Web Admin Console

Bootstrap-based /admin UI for users, API keys, providers, projects, audit, approvals, webhooks, and metrics. Operators never need to edit JSON.

Windows-service Installer

Inno Setup wizard or zip-drop. The daemon registers itself as a Windows service, terminates TLS itself, and runs unattended on a hardened host.

Multi-tenant-projecten

Elk project isoleert een subset van providers, API-sleutels, audit-zichtbaarheid en goedkeuringswachtrijen. Meerdere teams delen één server zonder elkaars ondertekeningsmateriaal te zien.

Goedkeuringsworkflow in twee stappen

Dezelfde API-sleutel doet een verzoek, een admin of projectadmin keurt het goed of af, en pas daarna worden de bytes ondertekend. SHA-256-hash en bestandsgrootte staan vast in het verzoek.

SHA-256-audit-log

Elke actie — ondertekenen, verifiëren, inloggen, goedkeuren, webhook afvuren — wordt toegevoegd aan een hash-geketend audit-log. Manipulatie is detecteerbaar; SIEM-scraping is rechttoe rechtaan.

Prometheus-metrics

Tellers voor ondertekenen / verifiëren / goedkeuren, histogrammen voor ondertekenlatentie, gauges voor providerbeschikbaarheid. Directe Prometheus 0.0.4-tekstexpositie zonder extra database om te beheren.

HMAC-ondertekende webhooks

13 lifecycle-events afgeleverd met X-Sgcsign-Signature: sha256=…. Een retry-wachtrij met drie pogingen houdt SIEM-, chat- en ticketing-systemen synchroon.

XAdES · PAdES · CAdES

Dezelfde engine die in de bibliotheek zit, ontsloten via de REST-API. Elk landprofiel, elk handtekeningniveau.

XAdES

XML-handtekeningen voor VeriFactu, FatturaPA, Facturae, KSeF, e-Factura, Peppol, myDATA en EU-arbeidscontracten. POST /api/v1/sign/xades.

PAdES

PAdES-Basic-PDF-handtekeningen met incrementele updates die de originele inhoud behouden. Zichtbare of onzichtbare handtekeningen. POST /api/v1/sign/pades.

CAdES

CMS-/PKCS#7-detached- of attached-handtekeningen voor willekeurige binaire data. Tijdstempel + long-term validation. POST /api/v1/sign/cades.

Authenticode, ClickOnce, NuGet, VSIX

De ondertekeningsdaemon praat met de certificaatbron die jij configureert: Windows-store, PFX, PKCS#11-hardwaretoken, Azure Trusted Signing, AWS KMS, Google KMS.

Authenticode

Onderteken .exe, .dll, .msi, .cab, .cat, .ocx, .sys. In hash-only-modus wisselen runners met weinig bandbreedte een paar tientallen bytes uit voor een PKCS#7-blob van 8 KB.

ClickOnce

Onderteken ClickOnce-manifests (.application / .manifest) zodat Windows-clients installeren zonder trust-prompts. POST /api/v1/sign/clickonce.

NuGet-packages

Onderteken .nupkg-packages zodat de NuGet-client de identiteit van de uitgever valideert. Author- en repository-handtekeningen worden ondersteund. POST /api/v1/sign/nuget.

VSIX-extensies

Onderteken Visual Studio-extensiepackages zodat zowel VS Marketplace als de IDE zelf ze als vertrouwd accepteren. POST /api/v1/sign/vsix.

Drop-in voor elke belangrijke pipeline

Build-agents roepen een stabiel REST-endpoint aan in plaats van ondertekeningscertificaten op elke runner te installeren.

GitHub Actions

De composite action post het artefact naar de REST-API van de server. Het token wordt uitgegeven door de webadmin, gekoppeld aan een project en verlaat nooit de secret-store van de runner.

Azure DevOps

De pipeline-taak draait de sgcSign-CLI-client, die de binary uploadt, indien nodig pollt op goedkeuring en het ondertekende resultaat downloadt — allemaal in één stap.

Jenkins

Declarative-pipeline-snippet met curl of de meegeleverde CLI. Werkt met zowel Linux- als Windows-agents; de handtekening verschijnt als build-artefact.

Docker

Image met de daemon en een voorbeeld-providerconfig. Draai de container, mount je TLS-cert en provider-secrets en je hebt een portable ondertekeningsservice.

Helm-chart

Deploy op Kubernetes voor volledig redundante, opgeschaalde ondertekening. Combineer met een cloud-KMS (Azure Trusted Signing, AWS KMS, Google KMS) voor sleutelloze pods.

Hoe de stukken in elkaar passen

Eén Windows-service termineert TLS, biedt /api/v1 + /admin aan en raadpleegt bij elke aanroep de geconfigureerde sleutelprovider. Sleutelmateriaal staat nooit in de database.

Eén binary, drie interfaces

  • Build-agents spreken /api/v1 aan via HTTPS met een bearer API-sleutel.
  • Operators loggen in op /admin in elke browser. Bootstrap-UI, sessiecookies, op rollen gebaseerde toegang.
  • Sleutelproviders on-demand opgehaald uit PFX, Windows-store, PKCS#11, Azure TS, AWS KMS, GCloud KMS, Vault, Certum, CSC v2.
  • SQLite-database bewaart gebruikers, API-sleutels, audit-log, sessies en webhook-wachtrij. Nooit het sleutelmateriaal zelf.
  • Webhooks worden asynchroon afgevuurd naar SIEM- en chat-systemen bij elke geauditeerde gebeurtenis.
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)|
     +-------------+   +---------------+   +-----------+

Eén curl verwijderd

Een bearer API-sleutel, een multipart upload en de ondertekende binary stroomt terug naar stdout. Authenticode, CAdES, PAdES, XAdES, ClickOnce, NuGet en VSIX delen dezelfde vorm.

Onderteken een .exe in één aanroep

  • X-API-Key of Authorization: Bearer — beide auth-methodes werken.
  • X-Project selecteert de tenant; de sleutel moet geautoriseerd zijn voor het project.
  • Het antwoord bevat X-Sgcsign-Signer-Subject + X-Sgcsign-Duration-Ms voor log-correlatie.
  • Hash-only-modus voor Authenticode: stuur de SHA-256, ontvang een kleine PKCS#7-blob.
sign-binary.sh
# MyApp.exe Authenticode-ondertekenen via de 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 die de server teruggeeft
# X-Sgcsign-Signer-Subject: CN=ACME Corp, O=ACME, C=US
# X-Sgcsign-Duration-Ms: 312

Drie stappen naar een ondertekende binary

Van een verse Windows-host naar het eerste ondertekende artefact in minder dan vijf minuten.

1

Installeren

Draai de meegeleverde Inno Setup-wizard of pak de zip uit in een map. De daemon registreert zichzelf als een Windows-service genaamd sgcSignServer. Bind aan :8443 en laad je TLS-certificaat.

2

Configureer een sleutelprovider

Voeg een provider toe aan sgcSignServer.conf.json — een PFX-bestand, een Azure Trusted Signing-account, een AWS KMS-sleutel, een Certum SimplySign-gebruiker of een van de andere tien sleutelproviders. Geen service-herstart vereist.

3

Geef een token uit en roep de API aan

Open /admin/apikeys, klik op New API key, koppel deze aan een project en kopieer het token naar je CI-runner-secret. De build-agent roept POST /api/v1/sign aan.

Centraliseer ondertekenen voor je hele build farm

Stop met het kopiëren van ondertekencertificaten naar elke build-agent. Eén sgcSign Server, één REST-endpoint, volledige audit en goedkeuringen.