---
title: "GeCert"
description: "GeCert: gerenciador de chaves e certificados da Lacuna Software que guarda as chaves em HSM, Azure Key Vault, PKCS #11 ou banco de dados, controla quem usa cada certificado e os disponibiliza no Windows pelo Gecert Connect."
canonical: "https://docs.lacunasoftware.com/articles/gecert"
locale: "pt-BR"
product: "GeCert"
last_updated: "2026-10-13"
---

# GeCert

O GeCert é o gerenciador de chaves e certificados da Lacuna Software para organizações. Ele guarda as chaves privadas dos certificados em
**repositórios de chaves** (um HSM Kryptus, o Azure Key Vault, um dispositivo PKCS #11 ou o próprio banco de dados), define **quais usuários
podem usar cada certificado** e disponibiliza esses certificados no Windows de cada usuário por meio do aplicativo **Gecert Connect**. Com
isso, qualquer aplicação Windows assina, decripta ou autentica com o certificado da organização, e a chave privada nunca sai do repositório.
Cada uso da chave fica registrado. 

Você pode usar uma instância do GeCert hospedada pela Lacuna ou ter uma instância na sua própria infraestrutura
([on-premises](https://docs.lacunasoftware.com/articles/gecert/on-premises)). A aplicação web e o Gecert Connect estão disponíveis em português, inglês e espanhol.

## Componentes

* **Servidor GeCert**: a aplicação web, com a área de cada organização e a área de administração (**Sys Admin**), e a [API REST](https://docs.lacunasoftware.com/articles/gecert/api)
  que a aplicação web e o Gecert Connect usam. Os usuários entram com uma conta do [GrantID](https://docs.lacunasoftware.com/articles/grant-id)
  (OpenID Connect). 
* **[Gecert Connect](https://docs.lacunasoftware.com/articles/gecert/gecert-connect)**: o aplicativo que fica na bandeja do Windows do usuário. Ele instala no repositório de
  certificados do Windows os certificados a que o usuário tem acesso e atende aos pedidos de assinatura e decriptação, encaminhando-os ao
  servidor. 
* **Lacuna Key Storage Provider (KSP)**: um provedor de armazenamento de chaves da CNG (*Cryptography API: Next Generation*) do Windows,
  instalado junto com o Gecert Connect. É por ele que o Windows e as aplicações enxergam a chave de cada certificado; ele repassa cada operação
  ao Gecert Connect por um *named pipe*. 
* **Repositórios de chaves**: onde as chaves ficam de fato. Veja [a tabela abaixo](https://docs.lacunasoftware.com/articles/gecert#repositórios-de-chaves).

## Conceitos

* **Organização**: cada organização tem as próprias chaves, certificados, usuários e aplicações. O administrador da instância, na área
  **Sys Admin**, cria as organizações e define a quais repositórios de chaves cada uma tem acesso. Um usuário pode pertencer a várias
  organizações. 
* **Chave**: uma referência a um par de chaves RSA guardado em um repositório. O GeCert guarda apenas os parâmetros que identificam a chave
  no repositório (por exemplo, os identificadores KMIP no HSM Kryptus) e um CSR assinado com ela. Uma chave nasce de três formas:
  gerada pelo GeCert no repositório (**Gerar Nova Chave**), importada de um arquivo PKCS #12 ao adicionar um certificado, ou registrada
  quando já existe no repositório (**Registrar chave existente**). 
* **Certificado**: um certificado X.509 ligado a uma chave. Para incluí-lo, envie um arquivo PKCS #12 (`.pfx`) com a senha, e o GeCert importa a
  chave para o repositório escolhido (**Adicionar certificado**); ou envie só o certificado (`.cer`, sem senha) para uma chave que já está no
  GeCert, desde que a chave pública corresponda (**Registrar certificado**). Um mesmo certificado não pode ser incluído duas vezes na mesma
  organização. 
* **Acesso ao certificado**: a autorização para um usuário usar um certificado. Só quem tem acesso vê o certificado no Gecert Connect e pode
  assinar com ele. O usuário precisa fazer parte da organização, e não pode ter acesso ao mesmo certificado (mesmo *thumbprint*) por duas
  organizações. Os acessos de um certificado podem ser copiados para outro, por exemplo quando o certificado é renovado.

* **Acesso ao repositório de chaves**: a liberação de um repositório para uma organização, feita pelo Sys Admin. Só os repositórios liberados
  aparecem ao gerar, registrar ou importar chaves. O repositório no banco de dados, chamado `DatabaseDefault`, existe em toda instância.

* **Partição**: nos repositórios que suportam partições, cada organização recebe uma partição própria, criada pelo GeCert na primeira vez
  que ela usa o repositório. No HSM Kryptus, a partição é um usuário do HSM com um PIN gerado pelo GeCert e guardado como *secret data* no
  próprio HSM; no banco de dados, é uma chave de criptografia própria, protegida por um PIN gerado pelo GeCert. O Azure Key Vault e os
  dispositivos PKCS #11 não têm partições: as chaves de todas as organizações ficam na raiz do repositório.

* **Usos de chaves**: o registro de cada operação feita com uma chave pelo Gecert Connect: a data, o usuário, a operação (assinatura,
  decriptação, encriptação ou verificação de assinatura), o algoritmo, o hash e o valor produzido. 
* **Eventos e relatórios**: toda criação, registro, atualização e exclusão de chaves e certificados, e toda concessão ou remoção de acesso,
  gera um evento. A organização pode gerar um relatório de expiração dos certificados e um relatório dos eventos de um certificado, em XLSX,
  CSV ou PDF. 

## Como uma assinatura acontece

![Como uma assinatura acontece com o GeCert: aplicação Windows, Lacuna KSP, Gecert Connect, servidor GeCert e repositório de chaves](https://docs.lacunasoftware.com/images/gecert/signature-flow-pt.svg)

0. Antes de tudo, o usuário entra no Gecert Connect com a conta do GrantID. A cada 60 segundos, o aplicativo consulta os certificados a que o
   usuário tem acesso (`GET /api/certificates/my`) e instala cada um deles no repositório de certificados pessoal do usuário no Windows, ligado
   a uma chave do Lacuna KSP cujo nome é o ID da chave no GeCert. Certificados cujo acesso foi removido são desinstalados.

1. Uma aplicação Windows (Adobe Acrobat, Office, um navegador, a sua aplicação) escolhe o certificado no repositório do Windows e pede à CNG
   que assine um hash com a chave dele.
1. O Lacuna KSP recebe o pedido e o envia ao Gecert Connect pelo *named pipe* `gecert-connect-pipe`. 
1. O Gecert Connect chama `POST /api/keys/{id}/signature` no servidor, com o token de acesso do usuário, informando o algoritmo (`RS256` ou
   `RS512`) e o hash em Base64. 
1. O servidor confere que o usuário tem acesso ao certificado e faz parte da organização, conecta-se à partição (ou à raiz) do repositório
   e assina o hash lá dentro. 
1. A assinatura volta pelo mesmo caminho até a aplicação, e o servidor registra o uso na lista **Usos de chaves** da organização.

A decriptação segue o mesmo caminho (`POST /api/keys/{id}/decryption`, com o padding `RSA1_5`). A encriptação e a verificação de
assinatura também passam pelo servidor, mas usam só a chave pública do certificado. Veja a [API](https://docs.lacunasoftware.com/articles/gecert/api#api-usada-pelo-gecert-connect).

## Papéis e permissões

Os papéis são os da plataforma de aplicações da Lacuna: dois por organização e dois na área Sys Admin. 

| Papel | Onde | O que pode fazer |
|---|---|---|
| **Admin** | Organização | Ver e gerenciar chaves, certificados e acessos a certificados; gerenciar os usuários e as aplicações da organização |
| **Basic** | Organização | Ver chaves, certificados e acessos a certificados |
| **Owner** | Sys Admin | Ver as chaves, os certificados e os acessos de todas as organizações; gerenciar acessos a certificados; conceder e remover o acesso das organizações aos repositórios de chaves; gerenciar usuários |
| **Contributor** | Sys Admin | Ver as chaves, os certificados, os acessos a certificados e os acessos aos repositórios de todas as organizações |

Usar uma chave (assinar ou decriptar pelo Gecert Connect) não depende do papel: exige que o usuário tenha um **acesso ao certificado**
concedido e faça parte da organização dona do certificado. Um Admin que não tem acesso ao certificado não consegue assinar com ele.

## Repositórios de chaves

O que cada tipo de repositório permite: 

| Repositório | `Type` | Gerar chaves | Importar PKCS #12 | Registrar chave existente | Partição por organização | Exclusão definitiva |
|---|---|---|---|---|---|---|
| Banco de dados (`DatabaseDefault`) | `Database` | Sim | Sim | Não | Sim | Sempre |
| HSM Kryptus kNET | `Kryptus` | Sim | Sim | Sim | Sim | Não |
| Azure Key Vault | `AzureKeyVault` | Sim (2048 ou 4096 bits) | Sim | Sim | Não | Se configurada |
| Dispositivo PKCS #11 (HSM ou token) | `Pkcs11` | Sim | Sim | Sim | Não | Se configurada |

Por padrão, uma chave pode ter 1024, 2048 ou 4096 bits. No Azure Key Vault, o nome da chave só pode ter letras, números e hífens. Quando a
exclusão definitiva (`HardDelete`) não está configurada ou não é suportada, excluir uma chave no GeCert só a marca como excluída: ela continua
no repositório. 

A configuração de cada repositório está em [Configuração de repositórios de chaves](https://docs.lacunasoftware.com/articles/gecert/on-premises/configure-key-stores).

## A aplicação web

Na **Área da Organização**, o menu tem: 

* **Home**: resumo da organização, com atalhos para **Gerar chave** e **Adicionar certificado**.
* **Chaves**: a lista de chaves, **Gerar Nova Chave** e **Registrar chave existente**. Em cada chave: **Detalhes da Chave** (tipo, tamanho e se
  ela ainda está no repositório), **Editar Chave** (o nome), **CSR da Chave** (exibir a CSR ou **Emitir nova CSR**, escolhendo o algoritmo de
  hash e o nome do titular), **Parâmetros da Chave** (os parâmetros no repositório, quando o repositório permite registro de chaves) e
  **Histórico da Chave**.
* **Certificados**: a lista de certificados, **Adicionar certificado** e **Registrar certificado**. Em cada certificado: os detalhes, os usuários
  autorizados (**Conceder acesso ao certificado**, remover um acesso ou todos, **Copiar autorizações para outro certificado**), os **Usos do
  certificado**, os **Eventos do certificado** e os relatórios (**Gerar relatório de certificados**, de expiração, e **Gerar relatório de
  certificado**, com os eventos de um certificado).
* **Usos de chaves**: todas as operações feitas com as chaves da organização.
* **Usuários**, **Aplicações** e **Eventos**: os usuários e os papéis deles, as aplicações com chave de API e o histórico da organização. Em cada
  usuário, os **Certificados autorizados**.

Na área **Sys Admin**, além das organizações, dos usuários, das aplicações e dos eventos de toda a instância, o menu tem **Armazenamentos de
Chaves**: a lista dos repositórios configurados (nome, tipo, se é o padrão, se aceita inserção e registro de chaves e se faz exclusão
definitiva) e os detalhes de cada um. Nos detalhes de uma organização, o Sys Admin concede e remove o acesso dela aos repositórios
(**Conceder acesso ao meio de armazenamento**). 

## Veja também

* [Gecert Connect](https://docs.lacunasoftware.com/articles/gecert/gecert-connect)
* [API do GeCert](https://docs.lacunasoftware.com/articles/gecert/api)
* [GeCert *on premises*](https://docs.lacunasoftware.com/articles/gecert/on-premises)
* [Histórico de versões](https://docs.lacunasoftware.com/articles/gecert/changelog)
* [GrantID](https://docs.lacunasoftware.com/articles/grant-id)
