Servidor sgcSign
Um daemon de assinatura de código remota auto-hospedado que encapsula o motor sgcSign por trás de uma REST API, um console de admin web Bootstrap e pipelines CI/CD prontos para uso.
Um daemon de assinatura de código remota auto-hospedado que encapsula o motor sgcSign por trás de uma REST API, um console de admin web Bootstrap e pipelines CI/CD prontos para uso.
Um único host Windows aceita solicitações de assinatura de agentes de build, desenvolvedores e pipelines CI — com auditoria completa, aprovações e métricas integradas.
Endpoints /api/v1 protegidos por TLS para assinatura, verificação, saúde, métricas e fluxos de aprovação. Contrato estável e amigável para agentes de build e SDKs.
Interface /admin baseada em Bootstrap para usuários, chaves de API, provedores, projetos, auditoria, aprovações, webhooks e métricas. Operadores nunca precisam editar JSON.
Assistente Inno Setup ou extração de zip. O daemon se registra como um serviço Windows, encerra o TLS por conta própria e roda sem supervisão em um host protegido.
Cada projeto isola um subconjunto de provedores, chaves de API, visibilidade de auditoria e filas de aprovação. Várias equipes compartilham um servidor sem ver o material de assinatura umas das outras.
A mesma chave de API faz a requisição, um administrador ou admin de projeto aprova ou rejeita, e somente então os bytes são assinados. O hash SHA-256 e o tamanho do arquivo ficam vinculados à requisição.
Toda ação — assinar, verificar, login, aprovação, disparo de webhook — é acrescentada a um log de auditoria com hash encadeado. Adulterações são detectáveis; a integração com SIEM é simples.
Contadores de assinatura/verificação/aprovação, histogramas de latência de assinatura, indicadores de disponibilidade de provedores. Exposição direta no formato texto Prometheus 0.0.4 sem banco de dados adicional.
13 eventos de ciclo de vida entregues com X-Sgcsign-Signature: sha256=…. Fila de reenvio com três tentativas mantém SIEM, chat e sistemas de tickets sincronizados.
O mesmo motor que acompanha a biblioteca, exposto pela REST API. Todos os perfis por país, todos os níveis de assinatura.
Assinaturas XML para VeriFactu, FatturaPA, Facturae, KSeF, e-Factura, Peppol, myDATA e contratos de trabalho da UE. POST /api/v1/sign/xades.
Assinaturas PDF PAdES-Basic com atualizações incrementais que preservam o conteúdo original. Assinaturas visíveis ou invisíveis. POST /api/v1/sign/pades.
Assinaturas CMS / PKCS#7 destacadas ou incorporadas para dados binários arbitrários. Carimbo de tempo + validação de longo prazo. POST /api/v1/sign/cades.
O daemon de assinatura se comunica com qualquer fonte de certificado que você configurar: repositório Windows, PFX, token de hardware PKCS#11, Azure Trusted Signing, AWS KMS, Google KMS.
Assina .exe, .dll, .msi, .cab, .cat, .ocx, .sys. O modo somente-hash permite que runners com pouca largura de banda troquem algumas dezenas de bytes por um blob PKCS#7 de 8 KB.
Assina manifestos ClickOnce (.application / .manifest) para que clientes Windows instalem sem alertas de confiança. POST /api/v1/sign/clickonce.
Assina pacotes .nupkg para que o cliente NuGet valide a identidade do publicador. Assinaturas de autor e de repositório são suportadas. POST /api/v1/sign/nuget.
Assina pacotes de extensão do Visual Studio para que o VS Marketplace e o próprio IDE os aceitem como confiáveis. POST /api/v1/sign/vsix.
Os agentes de build chamam um endpoint REST estável em vez de instalar certificados de assinatura em cada runner.
A ação composta envia o artefato para a REST API do servidor. O token emitido pelo admin web é vinculado a um projeto e nunca sai do repositório de segredos do runner.
A tarefa do pipeline executa o cliente CLI sgcSign, que faz o upload do binário, aguarda aprovação se necessário e baixa o resultado assinado — tudo em um único passo.
Trecho de pipeline declarativo usando curl ou o CLI incluído. Funciona com agentes Linux e Windows; a assinatura aparece como um artefato de build.
Imagem com o daemon e uma configuração de provedor de exemplo. Execute o contêiner, monte seu certificado TLS e os segredos do provedor, e você terá um serviço de assinatura portátil.
Implante no Kubernetes para assinatura totalmente redundante e escalável. Combine com KMS em nuvem (Azure Trusted Signing, AWS KMS, Google KMS) para pods sem chave local.
Um único serviço Windows encerra o TLS, expõe /api/v1 + /admin e acessa o provedor de chaves configurado em cada chamada. O material de chave nunca fica armazenado no banco de dados.
/api/v1 via HTTPS com uma chave de API bearer.
/admin em qualquer navegador. Interface Bootstrap, cookies de sessão, acesso baseado em papéis.
+----------------------------+
| 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 de distânciaUma chave de API bearer, um upload multipart, e o binário assinado volta para o stdout. Authenticode, CAdES, PAdES, XAdES, ClickOnce, NuGet, VSIX compartilham a mesma estrutura.
X-API-Key ou Authorization: Bearer — qualquer método de autenticação funciona.
X-Project seleciona o tenant; a chave deve estar autorizada para o projeto.
X-Sgcsign-Signer-Subject + X-Sgcsign-Duration-Ms para correlação de logs.
# 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
De um host Windows recém-instalado ao primeiro artefato assinado em menos de cinco minutos.
Execute o assistente Inno Setup incluído ou extraia o zip em uma pasta. O daemon se registra como um serviço Windows chamado sgcSignServer. Vincule à porta :8443 e carregue seu certificado TLS.
Adicione um provedor ao sgcSignServer.conf.json — um arquivo PFX, conta Azure Trusted Signing, chave AWS KMS, usuário Certum SimplySign ou qualquer um dos outros dez provedores de chave. Não é necessário reiniciar o serviço.
Abra /admin/apikeys, clique em New API key, vincule ao projeto, copie o token para o segredo do runner de CI. O agente de build chama POST /api/v1/sign.