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.
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.
Eén Windows-host accepteert ondertekenverzoeken van build-agents, ontwikkelaars en CI-pipelines — met volledige audit, goedkeuringen en metrics ingebouwd.
TLS-secured /api/v1 endpoints for signing, verification, health, metrics, and approval workflows. Stable, machine-friendly contract for build agents and SDKs.
Bootstrap-based /admin UI for users, API keys, providers, projects, audit, approvals, webhooks, and metrics. Operators never need to edit JSON.
Inno Setup wizard or zip-drop. The daemon registers itself as a Windows service, terminates TLS itself, and runs unattended on a hardened host.
Elk project isoleert een subset van providers, API-sleutels, audit-zichtbaarheid en goedkeuringswachtrijen. Meerdere teams delen één server zonder elkaars ondertekeningsmateriaal te zien.
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.
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.
Tellers voor ondertekenen / verifiëren / goedkeuren, histogrammen voor ondertekenlatentie, gauges voor providerbeschikbaarheid. Directe Prometheus 0.0.4-tekstexpositie zonder extra database om te beheren.
13 lifecycle-events afgeleverd met X-Sgcsign-Signature: sha256=…. Een retry-wachtrij met drie pogingen houdt SIEM-, chat- en ticketing-systemen synchroon.
Dezelfde engine die in de bibliotheek zit, ontsloten via de REST-API. Elk landprofiel, elk handtekeningniveau.
XML-handtekeningen voor VeriFactu, FatturaPA, Facturae, KSeF, e-Factura, Peppol, myDATA en EU-arbeidscontracten. POST /api/v1/sign/xades.
PAdES-Basic-PDF-handtekeningen met incrementele updates die de originele inhoud behouden. Zichtbare of onzichtbare handtekeningen. POST /api/v1/sign/pades.
CMS-/PKCS#7-detached- of attached-handtekeningen voor willekeurige binaire data. Tijdstempel + long-term validation. POST /api/v1/sign/cades.
De ondertekeningsdaemon praat met de certificaatbron die jij configureert: Windows-store, PFX, PKCS#11-hardwaretoken, Azure Trusted Signing, AWS KMS, Google KMS.
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.
Onderteken ClickOnce-manifests (.application / .manifest) zodat Windows-clients installeren zonder trust-prompts. POST /api/v1/sign/clickonce.
Onderteken .nupkg-packages zodat de NuGet-client de identiteit van de uitgever valideert. Author- en repository-handtekeningen worden ondersteund. POST /api/v1/sign/nuget.
Onderteken Visual Studio-extensiepackages zodat zowel VS Marketplace als de IDE zelf ze als vertrouwd accepteren. POST /api/v1/sign/vsix.
Build-agents roepen een stabiel REST-endpoint aan in plaats van ondertekeningscertificaten op elke runner te installeren.
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.
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.
Declarative-pipeline-snippet met curl of de meegeleverde CLI. Werkt met zowel Linux- als Windows-agents; de handtekening verschijnt als build-artefact.
Image met de daemon en een voorbeeld-providerconfig. Draai de container, mount je TLS-cert en provider-secrets en je hebt een portable ondertekeningsservice.
Deploy op Kubernetes voor volledig redundante, opgeschaalde ondertekening. Combineer met een cloud-KMS (Azure Trusted Signing, AWS KMS, Google KMS) voor sleutelloze pods.
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.
/api/v1 aan via HTTPS met een bearer API-sleutel.
/admin in elke browser. Bootstrap-UI, sessiecookies, op rollen gebaseerde toegang.
+----------------------------+
| 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)|
+-------------+ +---------------+ +-----------+
curl verwijderdEen 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.
X-API-Key of Authorization: Bearer — beide auth-methodes werken.
X-Project selecteert de tenant; de sleutel moet geautoriseerd zijn voor het project.
X-Sgcsign-Signer-Subject + X-Sgcsign-Duration-Ms voor log-correlatie.
# 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
Van een verse Windows-host naar het eerste ondertekende artefact in minder dan vijf minuten.
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.
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.
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.