sgcSign Server
sgcSign 엔진을 REST API, Bootstrap 웹 관리자 콘솔, 즉시 사용 가능한 CI/CD 파이프라인으로 감싼 자체 호스팅 원격 코드 서명 데몬이에요.
sgcSign 엔진을 REST API, Bootstrap 웹 관리자 콘솔, 즉시 사용 가능한 CI/CD 파이프라인으로 감싼 자체 호스팅 원격 코드 서명 데몬이에요.
단일 Windows 호스트가 빌드 에이전트, 개발자, CI 파이프라인의 서명 요청을 수락해요. 완전한 감사, 승인, 메트릭이 내장돼 있어요.
서명, 검증, 상태 확인, 메트릭, 승인 워크플로를 위한 TLS 보안 /api/v1 엔드포인트예요. 빌드 에이전트와 SDK를 위한 안정적이고 머신 친화적인 계약이에요.
사용자, API 키, 공급자, 프로젝트, 감사, 승인, 웹훅, 메트릭을 위한 Bootstrap 기반 /admin UI예요. 운영자는 JSON을 편집할 필요가 없어요.
Inno Setup 마법사 또는 zip 압축 해제로 설치해요. 데몬은 스스로를 Windows 서비스로 등록하고, TLS를 자체 처리하며, 강화된 호스트에서 무인으로 실행돼요.
각 프로젝트는 공급자, API 키, 감사 가시성, 승인 대기열의 하위 집합을 격리해요. 여러 팀이 서로의 서명 자료를 보지 않고 서버 하나를 공유해요.
동일한 API 키로 요청하고, 관리자 또는 프로젝트 관리자가 승인 또는 거부하면 그때만 바이트가 서명돼요. SHA-256 해시와 파일 크기가 요청에 잠겨요.
모든 작업 — 서명, 검증, 로그인, 승인, 웹훅 실행 — 이 해시 체인 감사 로그에 추가돼요. 변조가 감지 가능하며, SIEM 스크래핑이 간단해요.
서명 / 검증 / 승인 카운터, 서명 지연 시간 히스토그램, 공급자 가용성 게이지예요. 추가 데이터베이스 없이 직접 Prometheus 0.0.4 텍스트 노출을 지원해요.
13가지 수명 주기 이벤트가 X-Sgcsign-Signature: sha256=…와 함께 전달돼요. 3회 재시도 대기열이 SIEM, 채팅, 티켓팅 시스템을 동기화해요.
라이브러리에 포함된 동일한 엔진이 REST API를 통해 노출돼요. 모든 국가 프로파일, 모든 서명 수준을 지원해요.
VeriFactu, FatturaPA, Facturae, KSeF, e-Factura, Peppol, myDATA 및 EU 고용 계약을 위한 XML 서명이에요. POST /api/v1/sign/xades.
원본 내용을 보존하는 증분 업데이트가 포함된 PAdES-Basic PDF 서명이에요. 보이는 또는 보이지 않는 서명을 지원해요. POST /api/v1/sign/pades.
임의 바이너리 데이터를 위한 CMS / PKCS#7 분리형 또는 첨부형 서명이에요. 타임스탬프 + 장기 유효성 검사를 지원해요. POST /api/v1/sign/cades.
서명 데몬은 구성한 인증서 소스와 통신해요: Windows 저장소, PFX, PKCS#11 하드웨어 토큰, Azure Trusted Signing, AWS KMS, Google KMS.
.exe, .dll, .msi, .cab, .cat, .ocx, .sys에 서명해요. 해시 전용 모드를 사용하면 저대역폭 러너가 수십 바이트로 8KB PKCS#7 블롭을 교환할 수 있어요.
ClickOnce 매니페스트(.application / .manifest)에 서명하면 Windows 클라이언트가 신뢰 프롬프트 없이 설치해요. POST /api/v1/sign/clickonce.
NuGet 클라이언트가 게시자 ID를 검증하도록 .nupkg 패키지에 서명해요. 작성자 및 리포지토리 서명을 지원해요. POST /api/v1/sign/nuget.
VS Marketplace 및 IDE가 신뢰할 수 있도록 Visual Studio 확장 패키지에 서명해요. POST /api/v1/sign/vsix.
빌드 에이전트는 모든 러너에 서명 인증서를 설치하는 대신 안정적인 REST 엔드포인트를 호출해요.
컴포지트 액션이 아티팩트를 서버의 REST API에 게시해요. 웹 관리자가 발급한 토큰은 프로젝트로 범위가 지정되며, 러너 시크릿 저장소를 절대 벗어나지 않아요.
파이프라인 태스크가 sgcSign CLI 클라이언트를 실행해요. 바이너리를 업로드하고, 필요한 경우 승인을 폴링하고, 서명된 결과를 다운로드해요 — 모두 한 단계로요.
curl 또는 번들 CLI를 사용하는 선언적 파이프라인 스니펫이에요. Linux 및 Windows 에이전트 모두에서 작동하며, 서명은 빌드 아티팩트로 나타나요.
데몬과 샘플 공급자 구성이 포함된 이미지예요. 컨테이너를 실행하고 TLS 인증서 + 공급자 시크릿을 마운트하면 이식 가능한 서명 서비스가 생성돼요.
완전히 이중화된 확장형 서명을 위해 Kubernetes에 배포해요. 클라우드 KMS(Azure Trusted Signing, AWS KMS, Google KMS)와 결합하면 키 없는 파드를 구성할 수 있어요.
단일 Windows 서비스가 TLS를 종료하고 /api/v1 + /admin을 노출하며, 모든 호출에서 구성된 키 공급자에 접근해요. 키 자료는 데이터베이스에 절대 저장되지 않아요.
/api/v1을 호출해요.
/admin에 로그인해요. Bootstrap UI, 세션 쿠키, 역할 기반 액세스를 제공해요.
+----------------------------+
| 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 한 번으로 서명bearer API 키, 멀티파트 업로드, 그리고 서명된 바이너리가 stdout으로 스트림돼요. Authenticode, CAdES, PAdES, XAdES, ClickOnce, NuGet, VSIX가 동일한 형태를 공유해요.
X-API-Key 또는 Authorization: Bearer — 두 인증 방법 모두 작동해요.
X-Project가 테넌트를 선택해요. 키는 해당 프로젝트에 대해 승인되어 있어야 해요.
X-Sgcsign-Signer-Subject + X-Sgcsign-Duration-Ms가 포함돼요.
# 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
새 Windows 호스트에서 첫 서명 아티팩트까지 5분 이내예요.
번들 Inno Setup 마법사를 실행하거나 zip 파일을 폴더에 압축 해제해요. 데몬은 스스로를 sgcSignServer라는 Windows 서비스로 등록해요. :8443에 바인딩하고 TLS 인증서를 로드하세요.
sgcSignServer.conf.json에 공급자를 추가해요 — PFX 파일, Azure Trusted Signing 계정, AWS KMS 키, Certum SimplySign 사용자, 또는 기타 10가지 키 공급자 중 하나예요. 서비스 재시작이 필요 없어요.
/admin/apikeys를 열고 새 API 키를 클릭하고 프로젝트로 범위를 지정한 다음, CI 러너 시크릿에 토큰을 복사하세요. 빌드 에이전트가 POST /api/v1/sign을 호출해요.