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.

REST API + Admin web
7 formatos de assinatura
Projetos multi-tenant
Log de auditoria com hash encadeado

O que você recebe

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.

REST API

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.

Web Admin Console

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.

Windows-service Installer

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.

Projetos multi-tenant

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.

Fluxo de Aprovação em Duas Etapas

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.

Log de Auditoria SHA-256

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.

Métricas Prometheus

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.

Webhooks Assinados com HMAC

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.

XAdES · PAdES · CAdES

O mesmo motor que acompanha a biblioteca, exposto pela REST API. Todos os perfis por país, todos os níveis de assinatura.

XAdES

Assinaturas XML para VeriFactu, FatturaPA, Facturae, KSeF, e-Factura, Peppol, myDATA e contratos de trabalho da UE. POST /api/v1/sign/xades.

PAdES

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.

CAdES

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.

Authenticode, ClickOnce, NuGet, VSIX

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.

Authenticode

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.

ClickOnce

Assina manifestos ClickOnce (.application / .manifest) para que clientes Windows instalem sem alertas de confiança. POST /api/v1/sign/clickonce.

NuGet Packages

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.

VSIX Extensions

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.

Compatível com Todos os Principais Pipelines

Os agentes de build chamam um endpoint REST estável em vez de instalar certificados de assinatura em cada runner.

GitHub Actions

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.

Azure DevOps

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.

Jenkins

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.

Docker

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.

Helm Chart

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.

Como as Peças se Encaixam

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.

Um único binário, três interfaces

  • Agentes de build acessam /api/v1 via HTTPS com uma chave de API bearer.
  • Operadores fazem login em /admin em qualquer navegador. Interface Bootstrap, cookies de sessão, acesso baseado em papéis.
  • Provedores de chave buscados sob demanda em PFX, repositório Windows, PKCS#11, Azure TS, AWS KMS, GCloud KMS, Vault, Certum, CSC v2.
  • Banco de dados SQLite persiste usuários, chaves de API, log de auditoria, sessões e fila de webhooks. Nunca o material de chave em si.
  • Webhooks são disparados de forma assíncrona para SIEM e sistemas de chat em cada evento auditado.
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)|
     +-------------+   +---------------+   +-----------+

Um curl de distância

Uma 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.

Assinar um .exe em uma chamada

  • 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.
  • A resposta inclui X-Sgcsign-Signer-Subject + X-Sgcsign-Duration-Ms para correlação de logs.
  • Modo somente-hash para Authenticode: envie o SHA-256, receba um pequeno blob PKCS#7.
sign-binary.sh
# 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

Três Passos para um Binário Assinado

De um host Windows recém-instalado ao primeiro artefato assinado em menos de cinco minutos.

1

Instalar

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.

2

Configurar um Provedor de Chave

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.

3

Emitir um Token e Chamar a API

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.

Centralize a Assinatura em Todo o Seu Parque de Build

Pare de copiar certificados de assinatura para cada agente de build. Um sgcSign Server, um endpoint REST, auditoria completa e aprovações.