---
title: "Configuração de repositórios de chaves - GeCert"
description: "Configuração da seção KeyStores do GeCert: o repositório padrão no banco de dados e os repositórios em HSM Kryptus, Azure Key Vault e PKCS #11, com as opções HardDelete, KeyRegistrationDisabled e KeyInsertionDisabled."
canonical: "https://docs.lacunasoftware.com/articles/gecert/on-premises/configure-key-stores"
locale: "pt-BR"
product: "GeCert"
last_updated: "2026-10-13"
---

# Configuração de repositórios de chaves - GeCert

Os repositórios de chaves do [GeCert](https://docs.lacunasoftware.com/articles/gecert) são configurados na seção **KeyStores**: cada subseção tem o nome de um repositório e
contém a configuração dele, começando pelo `Type`. O nome é o que aparece na aplicação web e o que o Sys Admin libera para cada organização
([acesso ao repositório de chaves](https://docs.lacunasoftware.com/articles/gecert#conceitos)).

## Repositório padrão

Toda instância tem o repositório `DatabaseDefault`, do tipo `Database`, que guarda as chaves criptografadas no banco de dados, sem nenhuma
configuração. Ele não aceita o registro de chaves existentes e sempre apaga a chave do banco quando ela é excluída. Para mudar as opções
dele, declare uma subseção com o mesmo nome `DatabaseDefault` e `Type=Database`.

## Opções comuns

Todo repositório aceita estas opções: 

* **Type**: `Database`, `Kryptus`, `AzureKeyVault` ou `Pkcs11`
* **HardDelete**: `True` para apagar a chave do repositório quando ela é excluída no GeCert. O padrão é `False`: a chave fica apenas marcada
  como excluída. No banco de dados é sempre `True`; no HSM Kryptus a exclusão não é suportada
* **KeyRegistrationDisabled**: `True` para impedir o registro de chaves que já existem no repositório (**Registrar chave existente**). No
  banco de dados é sempre `True`
* **KeyInsertionDisabled**: `True` para impedir a geração de chaves e a importação de PKCS #12 neste repositório. Um repositório com
  registro e inserção desabilitados só serve às chaves que já estão nele

## HSM Kryptus

Para guardar as chaves em um [HSM Kryptus kNET](https://kryptus.com/en/network-hsm-knet/), o GeCert usa o protocolo KMIP por HTTPS:

* **Type**: `Kryptus`
* **Host**: endereço IP ou nome do host do VHSM
* **Port**: porta HTTPS do VHSM
* **VcoUsername** e **VcoPassword**: credenciais de um usuário **VCO**, com as quais o GeCert cria um usuário do HSM para a partição de cada
  organização
* **RootUsername** e **RootPassword**: credenciais de um usuário **comum**, dono da raiz do repositório. É nele que o GeCert guarda, como
  *secret data*, o PIN de cada partição. Se o usuário não existir, o GeCert o cria com o usuário VCO
* **ResponseCacheDisabled**: `True` para desligar o cache das respostas do HSM. O padrão é `False`

Exemplo (arquivo de configuração *.ini* ou *.conf*):

```ini
[KeyStores:MeuHsm]
Type=Kryptus
Host=10.1.2.3
Port=443
VcoUsername=vco
VcoPassword=SENHA_DO_VCO
RootUsername=gecert
RootPassword=SENHA_DO_USUARIO
```

Exemplo (variáveis de ambiente):

```bash
KeyStores__MeuHsm__Type=Kryptus
KeyStores__MeuHsm__Host=10.1.2.3
KeyStores__MeuHsm__Port=443
KeyStores__MeuHsm__VcoUsername=vco
KeyStores__MeuHsm__VcoPassword=SENHA_DO_VCO
KeyStores__MeuHsm__RootUsername=gecert
KeyStores__MeuHsm__RootPassword=SENHA_DO_USUARIO
```

## Azure Key Vault

O GeCert se autentica no Azure com um aplicativo registrado no Microsoft Entra ID e um *client secret*, e cria, importa, lê, usa e exclui
chaves no Key Vault. Crie o aplicativo, o segredo e o Key Vault e conceda as permissões como descrito para o
[Amplia](https://docs.lacunasoftware.com/articles/amplia/on-premises/key-stores/azure), incluindo as permissões de importar e excluir chaves. Depois configure:

* **Type**: `AzureKeyVault`
* **Endpoint**: o *Vault URI* do Key Vault, por exemplo `https://meu-cofre.vault.azure.net/`
* **TenantId**: o ID do *tenant* do Microsoft Entra
* **AppId**: o *Application (client) ID* do aplicativo
* **AppKey**: o *client secret* do aplicativo
* **UseHsm**: por padrão (`True`), as chaves geradas e importadas são protegidas por HSM, o que exige um Key Vault *Premium*. Defina como
  `False` para usar chaves de software

No Azure Key Vault, as chaves geradas têm 2048 ou 4096 bits, e o nome da chave só pode ter letras, números e hífens. 

Exemplo (arquivo de configuração *.ini* ou *.conf*):

```ini
[KeyStores:MeuKeyVault]
Type=AzureKeyVault
Endpoint=https://meu-cofre.vault.azure.net/
TenantId=00000000-0000-0000-0000-000000000000
AppId=00000000-0000-0000-0000-000000000000
AppKey=CLIENT_SECRET_DO_APLICATIVO
HardDelete=True
```

## Dispositivo PKCS #11

Para um HSM ou token com biblioteca PKCS #11, instalada no servidor do GeCert: 

* **Type**: `Pkcs11`
* **Module**: o caminho ou o nome da biblioteca PKCS #11 (por exemplo, `eTPKCS11.dll`)
* **Pin**: o PIN do token
* **TokenSerialNumber**: o número de série do token a usar, quando a biblioteca enxerga mais de um. Se omitido, o primeiro token é usado
* **IgnoreCaseOnLabelMatching**: `True` para localizar as chaves pelo *label* sem diferenciar maiúsculas de minúsculas. O padrão é `False`

Exemplo (arquivo de configuração *.ini* ou *.conf*):

```ini
[KeyStores:MeuToken]
Type=Pkcs11
Module=eTPKCS11.dll
Pin=PIN_DO_TOKEN
HardDelete=True
```

Exemplo (configuração JSON):

```json
"KeyStores": {
	"MeuHsm": {
		"Type": "Kryptus",
		"Host": "10.1.2.3",
		"Port": 443,
		"VcoUsername": "vco",
		"VcoPassword": "SENHA_DO_VCO",
		"RootUsername": "gecert",
		"RootPassword": "SENHA_DO_USUARIO"
	},
	"MeuToken": {
		"Type": "Pkcs11",
		"Module": "eTPKCS11.dll",
		"Pin": "PIN_DO_TOKEN",
		"HardDelete": true
	}
}
```

Depois de configurar um repositório, libere-o para as organizações que vão usá-lo: na área **Sys Admin**, nos detalhes da organização,
clique em **Conceder acesso ao meio de armazenamento**. 

## Veja também

* [Repositórios de chaves do GeCert](https://docs.lacunasoftware.com/articles/gecert#repositórios-de-chaves)
* [Repositórios de chaves do Amplia](https://docs.lacunasoftware.com/articles/amplia/on-premises/key-stores), com as vantagens e desvantagens de cada tipo
