sgcSign Server
Samodzielnie hostowany demon zdalnego podpisywania kodu, który obudowuje silnik sgcSign interfejsem REST API, konsolą administracyjną Bootstrap i gotowymi pipeline'ami CI/CD.
Samodzielnie hostowany demon zdalnego podpisywania kodu, który obudowuje silnik sgcSign interfejsem REST API, konsolą administracyjną Bootstrap i gotowymi pipeline'ami CI/CD.
Jeden host Windows przyjmuje żądania podpisywania od agentów buildu, deweloperów i pipeline'ów CI — z wbudowanym pełnym audytem, zatwierdzeniami i metrykami.
Zabezpieczone TLS punkty końcowe /api/v1 do podpisywania, weryfikacji, sprawdzania stanu, metryk i przepływów zatwierdzeń. Stabilny, maszynowo-przyjazny kontrakt dla agentów buildu i SDK.
Interfejs /admin oparty na Bootstrap do zarządzania użytkownikami, kluczami API, dostawcami, projektami, audytem, zatwierdzeniami, webhookami i metrykami. Operatorzy nie muszą edytować JSON.
Kreator Inno Setup lub wrzucenie ZIP. Demon rejestruje się jako usługa Windows, sam obsługuje TLS i działa bezobsługowo na zabezpieczonym hoście.
Each project isolates a subset of providers, API keys, audit visibility, and approval queues. Several teams share one server without seeing each other's signing material.
Ten sam klucz API składa żądanie, administrator lub administrator projektu zatwierdza albo odrzuca, i dopiero wtedy bajty są podpisywane. Hash SHA-256 i rozmiar pliku są zablokowane w żądaniu.
Każde działanie — podpisanie, weryfikacja, logowanie, zatwierdzenie, wywołanie webhooka — jest dołączane do dziennika audytu z łańcuchem haszowym. Manipulacje są wykrywalne; scrapowanie SIEM jest proste.
Liczniki podpisywania / weryfikacji / zatwierdzeń, histogramy opóźnień podpisywania, mierniki dostępności dostawcy. Bezpośrednia ekspozycja tekstu Prometheus 0.0.4 bez dodatkowej bazy danych do zarządzania.
13 zdarzeń cyklu życia dostarczanych z X-Sgcsign-Signature: sha256=…. Kolejka ponownych prób (trzy próby) synchronizuje systemy SIEM, czat i tickety.
Ten sam silnik co w bibliotece, udostępniony przez REST API. Każdy profil krajowy, każdy poziom podpisu.
Podpisy XML dla VeriFactu, FatturaPA, Facturae, KSeF, e-Factura, Peppol, myDATA i unijnych umów o pracę. POST /api/v1/sign/xades.
Podpisy PDF PAdES-Basic z aktualizacjami przyrostowymi zachowującymi oryginalną treść. Widoczne lub niewidoczne podpisy. POST /api/v1/sign/pades.
Podpisy CMS / PKCS#7 odłączone lub dołączone dla dowolnych danych binarnych. Znacznik czasu + długoterminowa walidacja. POST /api/v1/sign/cades.
Demon podpisywania komunikuje się z dowolnie skonfigurowanym źródłem certyfikatów: magazyn Windows, PFX, token sprzętowy PKCS#11, Azure Trusted Signing, AWS KMS, Google KMS.
Podpisuje .exe, .dll, .msi, .cab, .cat, .ocx, .sys. Tryb tylko-hash pozwala agentom o małej przepustowości wymienić kilkadziesiąt bajtów na 8 KB obiekt PKCS#7.
Podpisuje manifesty ClickOnce (.application / .manifest), aby klienty Windows instalowały bez monitów o zaufanie. POST /api/v1/sign/clickonce.
Podpisuje pakiety .nupkg, aby klient NuGet weryfikował tożsamość wydawcy. Obsługuje podpisy autora i repozytorium. POST /api/v1/sign/nuget.
Podpisuje pakiety rozszerzeń Visual Studio, aby VS Marketplace i samo IDE akceptowały je jako zaufane. POST /api/v1/sign/vsix.
Agenty buildu wywołują stabilny punkt końcowy REST zamiast instalować certyfikaty podpisywania na każdym runnerze.
Akcja złożona wysyła artefakt do REST API serwera. Token wydany przez panel administracyjny, ograniczony do projektu, nigdy nie opuszcza magazynu sekretów runnera.
Zadanie pipeline uruchamia klienta CLI sgcSign, który przesyła plik binarny, sprawdza zatwierdzenie jeśli wymagane i pobiera podpisany wynik — wszystko w jednym kroku.
Fragment deklaratywnego pipeline'u używający curl lub dołączonego CLI. Działa zarówno z agentami Linux, jak i Windows; podpis pojawia się jako artefakt buildu.
Obraz z demonem i przykładową konfiguracją dostawcy. Uruchom kontener, podmontuj certyfikat TLS i sekrety dostawcy — i masz przenośną usługę podpisywania.
Wdrażaj na Kubernetes dla w pełni redundantnego, skalowalnego podpisywania. Łącz z chmurowym KMS (Azure Trusted Signing, AWS KMS, Google KMS) dla podów bez kluczy.
Jedna usługa Windows obsługuje TLS, udostępnia /api/v1 + /admin i kontaktuje się ze skonfigurowanym dostawcą klucza przy każdym wywołaniu. Materiał kluczowy nigdy nie trafia do bazy danych.
/api/v1 przez HTTPS z kluczem API bearer.
/admin w dowolnej przeglądarce. Interfejs Bootstrap, ciasteczka sesji, dostęp oparty na rolach.
+----------------------------+
| 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)|
+-------------+ +---------------+ +-----------+
curlKlucz API bearer, przesyłanie wieloczęściowe i podpisany plik binarny przesyłany strumieniowo z powrotem do stdout. Authenticode, CAdES, PAdES, XAdES, ClickOnce, NuGet, VSIX mają ten sam kształt.
X-API-Key lub Authorization: Bearer — obie metody uwierzytelniania działają.
X-Project wybiera dzierżawcę; klucz musi być autoryzowany dla projektu.
X-Sgcsign-Signer-Subject + X-Sgcsign-Duration-Ms do korelacji logów.
# 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
Od świeżego hosta Windows do pierwszego podpisanego artefaktu w mniej niż pięć minut.
Uruchom dołączony kreator Inno Setup lub wrzuć ZIP do folderu. Demon rejestruje się jako usługa Windows o nazwie sgcSignServer. Powiąż z :8443 i załaduj certyfikat TLS.
Dodaj dostawcę do sgcSignServer.conf.json — plik PFX, konto Azure Trusted Signing, klucz AWS KMS, użytkownika Certum SimplySign lub któregokolwiek z pozostałych dziesięciu dostawców kluczy. Nie jest wymagane ponowne uruchomienie usługi.
Otwórz /admin/apikeys, kliknij Nowy klucz API, ogranicz go do projektu, skopiuj token do sekretu runnera CI. Agent buildu wywołuje POST /api/v1/sign.