---
title: "Certificados de teste"
description: "Certificados de teste da ICP de testes da Lacuna Software, em PKCS #12, e como confiar neles no Web PKI, Rest PKI, Rest PKI Core, PKI SDK, PKI Express, Signer e TrustBridge. Nunca use em produção."
canonical: "https://docs.lacunasoftware.com/articles/pki-guide/test-certs"
locale: "pt-BR"
product: "Certificação Digital"
last_updated: "2026-10-19"
---

# Certificados de teste

Se você não tiver um certificado ICP-Brasil para testar nossos produtos, você pode
utilizar um dos certificados para testes da ICP de testes da Lacuna Software.

> **Aviso**
>
> A ICP de testes da Lacuna Software nunca deve ser aceita em ambiente de produção!

**[Baixar certificados para testes](https://docs.lacunasoftware.com/pt-br/content/test-certs.zip)**

Todos os arquivos no zip acima estão em formato PKCS #12 (arquivos .pfx) com senha **1234**. Os seguintes certificados
estão presentes:

* Alan Mathison Turing
    * Email: testturing@lacunasoftware.com
    * Mimetiza certificado ICP-Brasil de pessoa física com CPF 560.723.861-05
* Ferdinand Georg Frobenius
    * Email: testfrobenius@lacunasoftware.com
    * Mimetiza certificado ICP-Brasil de pessoa física com CPF 873.780.111-26
* Pierre de Fermat
    * Email: test@lacunasoftware.com
    * Mimetiza certificado ICP-Brasil de pessoa física com CPF 473.633.618-86
* Wayne Enterprises, Inc
    * Email: test@wayneenterprises.com
    * Mimetiza certificado ICP-Brasil de pessoa jurídica com CNPJ 34.785.515/0001-66
    * Representante legal: Bruce Wayne, CPF 478.911.786-31

Se você precisar de um certificado diferente com dados específicos, você mesmo pode [emitir um certificado de testes](https://demos.lacunasoftware.com/pt/demos/generate-certificate) com os dados que quiser.

Lembre-se de sempre **remover a confiança na ICP de testes da Lacuna Software ao levar a sua aplicação para produção**. Ainda melhor,
recomendamos o emprego de alguma técnica de compilação condicional de modo que a ICP de testes seja aceita apenas quando o código
estiver executando em modo *debug*.

## O que os arquivos contêm

* Cada arquivo contém só o certificado final e a chave privada dele, sem a cadeia. Importar um arquivo não instala a raiz nem a AC intermediária de testes. 
* Os certificados são emitidos pela **Lacuna CA Test v7**, que é emitida pela **Lacuna Root Test v3**. Para confiar na ICP de testes, confie nessa raiz:
    * Subject: `C=BR, O=ICP-Brasil, OU=Lacuna Software - LS, CN=Lacuna Root Test v3`, válida de 16/12/2024 a 16/12/2074.
    * Impressão digital SHA-256: `BE:1E:84:17:7B:80:F1:88:9A:65:F1:10:10:A8:FB:85:49:5B:E7:0F:FC:3D:83:F5:C6:D6:3A:92:BE:DC:C0:18`.
    * Download: [lacuna-root-test-v3.cer](http://ca.lacunasoftware.com/certs/lacuna-root-test-v3.cer). A AC intermediária é a [lacuna-ca-test-v7.cer](http://ca.lacunasoftware.com/certs/lacuna-ca-test-v7.cer).

* Os certificados valem até janeiro de 2075, com os usos de chave Digital Signature, Non Repudiation e Key Encipherment, e os usos estendidos autenticação de cliente TLS e proteção de e-mail. 
* Os arquivos usam a criptografia antiga do PKCS #12 (3DES para a chave, RC2 de 40 bits para o certificado, MAC com SHA-1). O OpenSSL 3 os recusa com o erro `unsupported ... RC2-40-CBC`, a menos que você passe `-legacy`: 

  ```bash
  openssl pkcs12 -legacy -in "Pierre de Fermat.pfx" -passin pass:1234 -nokeys
  ```

## Confiando na ICP de testes em cada produto

Cada produto decide à sua maneira em quais raízes confia, e você precisa configurar cada um para confiar na ICP de testes.
As seções abaixo mostram como, e o que fazem os [projetos de exemplo](https://github.com/LacunaSoftware/PkiSuiteSamples):

| Produto | Como confiar na ICP de testes | O que os exemplos fazem |
| --- | --- | --- |
| [Web PKI](https://docs.lacunasoftware.com/articles/pki-guide/test-certs#web-pki) | Instale o certificado no repositório do usuário; a confiança vem do Rest PKI ou dos `trustArbitrators` de uma assinatura local | .NET: adiciona uma raiz de testes antiga, que não aceita mais estes certificados |
| [Rest PKI](https://docs.lacunasoftware.com/articles/pki-guide/test-certs#configurando-o-rest-pki) | Contexto de segurança `803517ad-3bbc-4169-b085-60053a8f6dbf` | .NET: builds de debug; demais linguagens: `trustLacunaTestRoot` |
| [Rest PKI Core](https://docs.lacunasoftware.com/articles/pki-guide/test-certs#rest-pki-core) | O mesmo contexto de segurança, por requisição ou como padrão da organização | .NET: builds de debug; Java: `trustLacunaTestRoot` |
| [PKI SDK](https://docs.lacunasoftware.com/articles/pki-guide/test-certs#pki-sdk) | `TrustedRoots` com a Lacuna Root Test v3 num `LinkedTrustArbitrator` | .NET: builds de debug |
| [PKI Express](https://docs.lacunasoftware.com/articles/pki-guide/test-certs#pki-express) | `trustLacunaTestRoot` no operador | `trustLacunaTestRoot` na configuração |
| [Signer](https://docs.lacunasoftware.com/articles/pki-guide/test-certs#signer) | Adicione a raiz ao TrustArbitrator da instância (on-premises) | Assinam no sandbox com um certificado de teste |
| [TrustBridge](https://docs.lacunasoftware.com/articles/pki-guide/test-certs#trustbridge) | `Certificates:Validation:UseLacunaTestPki` no Servidor e em cada estação de trabalho | Nenhum exemplo publicado |

## Web PKI

O Web PKI lista os certificados do repositório de certificados do sistema operacional e dos dispositivos criptográficos conectados, então um certificado de teste precisa estar instalado para que o Web PKI o liste. 

**Windows.** Importe o arquivo `.pfx` para o repositório **Pessoal** do usuário atual. Dê um duplo clique no arquivo e siga o Assistente para Importação de Certificados (local do repositório **Usuário Atual**, senha `1234`), ou rode no PowerShell:

```powershell
Import-PfxCertificate -FilePath ".\Pierre de Fermat.pfx" -CertStoreLocation Cert:\CurrentUser\My -Password (ConvertTo-SecureString 1234 -AsPlainText -Force)
```

Depois disso, o `certmgr.msc` mostra o certificado na pasta **Pessoal**, com a indicação de que você tem a chave privada correspondente. Veja [Primeiros passos](https://docs.lacunasoftware.com/articles/web-pki/get-started). 

TODO(docs): como instalar os arquivos PKCS #12 de teste para que o Web PKI os liste no Linux e no macOS. Nenhuma fonte diz qual repositório o Web PKI lê nesses sistemas.

**Confiança.** Instalar o certificado não faz uma assinatura confiar nele:

* Com o Rest PKI ou o Rest PKI Core, quem decide é o contexto de segurança da operação: veja [Configurando o Rest PKI](https://docs.lacunasoftware.com/articles/pki-guide/test-certs#configurando-o-rest-pki) e [Rest PKI Core](https://docs.lacunasoftware.com/articles/pki-guide/test-certs#rest-pki-core).
* Numa assinatura feita só com o Web PKI, como a `signPdf()`, adicione a Lacuna Root Test v3 aos `trustArbitrators` como árbitro `trustedRoot`, com a raiz codificada em Base64, só em desenvolvimento. O exemplo em ASP.NET MVC faz isso em `Views/PadesSignatureWeb/Index.cshtml`, mas o `_lacunaTestRoot` dele (em `Views/Shared/_Layout.cshtml`) é uma raiz antiga, a Lacuna Root Test v1, que expirou em janeiro de 2025 e não é a raiz destes certificados: use a Lacuna Root Test v3. 

```javascript
trustArbitrators: [
    pki.standardTrustArbitrators.pkiBrazil,
    // Lacuna Software Test Root (development only!)
    { type: 'trustedRoot', trustedRoot: lacunaTestRootBase64 }
]
```

## Configurando o Rest PKI

O ID do contexto de segurança que contém a ICP de testes da Lacuna Software é:

```text
Lacuna Test PKI security context ID (for development purposes only!!!):
803517ad-3bbc-4169-b085-60053a8f6dbf
```

Passe-o como o contexto de segurança da operação. Por exemplo, para iniciar uma assinatura PAdES (PDF) em PHP:

```php
// Trust Lacuna Test PKI (for development purposes only!!!)
$signatureStarter->setSecurityContext("803517ad-3bbc-4169-b085-60053a8f6dbf");
```

Ou em Java:

```java
// Trust Lacuna Test PKI (for development purposes only!!!)
signatureStarter.setSecurityContext(new SecurityContext("803517ad-3bbc-4169-b085-60053a8f6dbf"));
```

Nos projetos do [PkiSuiteSamples](https://github.com/LacunaSoftware/PkiSuiteSamples) você não altera o exemplo: todas as páginas obtêm o contexto de segurança de um auxiliar `Util`, que devolve o contexto da ICP de testes da Lacuna quando a chave do projeto está ligada. 

| Linguagem | Exemplo (PAdES com o Rest PKI) | Chave |
| --- | --- | --- |
| PHP | `php/plain/public/pades-signature-rest/index.php`, pelo `Util::getSecurityContextId()` | `"trustLacunaTestRoot" => true` em `php/plain/config.php` (`true` por padrão) |
| Java | `java/springmvc/.../controller/PadesSignatureRestController.java`, pelo `Util.getSecurityContext()` | `trustLacunaTestRoot` em `application.yml` (`false`) e `application-dev.yml` (`true`) |
| .NET | `dotnet/mvc/PkiSuiteAspNetMvcSample/Controllers/PadesSignatureRestController.cs`, pelo `Util.GetSecurityContextId()` | Build de debug: `StandardSecurityContexts.LacunaTest` sob `#if DEBUG`, `PkiBrazil` nos demais |
| Node.js | | `trustLacunaTestRoot` em `nodejs/expressmvc/config/*.js` |
| Python | | `TRUST_LACUNA_TEST_ROOT` em `python/flask/sample/config.py` e `python/django/sample/config.py` |

O exemplo em .NET avisa que uma instalação on-premises do Rest PKI pode não ter esse contexto de segurança; se a sua não tiver, entre em contato com o suporte ao desenvolvedor. 

A partir daí, os certificados da nossa ICP de testes passam a ser aceitos.

## Rest PKI Core

Toda instância do Rest PKI Core tem o contexto de segurança padrão **Lacuna Test PKI (for development purposes only!)**, com o mesmo ID, `803517ad-3bbc-4169-b085-60053a8f6dbf` (`StandardSecurityContexts.LacunaTest` no cliente .NET). A instância o cria ao iniciar, então as instâncias on-premises também o têm. Ele confia na ICP-Brasil, no repositório de certificados confiáveis do Windows e na Lacuna Root Test v3. 

Use-o de uma de duas formas:

* **Por requisição**: passe o ID como `SecurityContextId` ao criar uma sessão de assinatura (`CreateSignatureSessionRequest.SecurityContextId`) ou preparar uma assinatura (`PrepareSignatureOptions.SecurityContextId`, `securityContextId` no `POST api/signature`). 
* **Para toda a organização**: no dashboard, escolha-o em **Configurações** > **Configurações gerais** > **Contexto de segurança padrão**, o contexto de segurança usado quando a requisição não informa um. Só usuários com o papel **Admin** ou **Manager** na organização veem **Configurações**. 

Quando a requisição não informa um contexto de segurança, o Rest PKI Core usa o padrão da organização, ou então a configuração `General:DefaultSecurityContext` da instância, cujo padrão é a ICP-Brasil (PKI Brazil). Por isso, por padrão, os certificados de teste não são aceitos. 

Nos exemplos, o projeto em ASP.NET MVC passa `StandardSecurityContexts.LacunaTest` em builds de debug e `PkiBrazil` nos demais; o projeto em Java passa `SecurityContext.lacunaTest` só quando `trustLacunaTestRoot` é `true` no `application.yml`, que vem com `false`. 

Não há sandbox público: os exemplos e o site de demonstração usam uma organização de avaliação no core.pki.rest, cuja chave de API a Lacuna troca todo mês. Pegue a chave atual no repositório de exemplos, em vez de copiá-la para o seu código. 

TODO(docs): como um desenvolvedor obtém uma chave de avaliação própria para o core.pki.rest.

## PKI SDK

O PKI SDK não tem contexto de segurança: as raízes em que ele confia vêm de um `ITrustArbitrator`. Para confiar na ICP de testes, adicione a Lacuna Root Test v3 como `TrustedRoots` a um `LinkedTrustArbitrator`, só em builds de debug. Os exemplos fazem isso no `Util.GetTrustArbitrator()`: 

```cs
var trustArbitrator = new LinkedTrustArbitrator(TrustArbitrators.PkiBrazil, TrustArbitrators.Windows);
#if DEBUG
// For development purposes, we also trust in Lacuna Software's test certificates.
// lacunaRootBytes: Lacuna Root Test v3 (the samples embed it in Base64)
var lacunaRoot = PKCertificate.Decode(lacunaRootBytes);
trustArbitrator.Add(new TrustedRoots(lacunaRoot));
#endif
```

Depois, use esse árbitro onde uma validação ou uma política de assinatura precisar de um:

* **PAdES**: passe-o para a política, por exemplo `PadesPoliciesForGeneration.GetPadesBasic(trustArbitrator)` e `PadesPoliciesForValidation.GetPadesBasic(trustArbitrator)`. 
* **Políticas da ICP-Brasil** vêm com o próprio árbitro de confiança, que confia só nas raízes da ICP-Brasil, então recusam um certificado de teste mesmo que o resto da sua aplicação use o seu árbitro. Substitua-o, só em builds de debug:
    * CAdES, como `CadesPoliciesForGeneration.GetPkiBrazilAdrBasica()`: `policy.ClearTrustArbitrator()` e depois `policy.AddTrustArbitrator(trustArbitrator)`.
    * XML, como `BrazilXmlPolicySpec.GetNFePadraoNacional()`: `policy.ClearTrustArbitrators()` e depois `policy.AddTrustArbitrator(trustArbitrator)`.

Veja [Validando certificados](https://docs.lacunasoftware.com/articles/pki-sdk/certificates/validation) para `TrustedRoots` e `LinkedTrustArbitrator`.

## PKI Express

Ligue `trustLacunaTestRoot` no operador (`trust_lacuna_test_root` em Python e Ruby). Veja "Confiando em certificados que não sejam da ICP-Brasil" para [Node.js](https://docs.lacunasoftware.com/articles/pki-express/nodejs/trusting-in-custom-certificates), [Java](https://docs.lacunasoftware.com/articles/pki-express/java/trusting-in-custom-certificates), [PHP](https://docs.lacunasoftware.com/articles/pki-express/php/trusting-in-custom-certificates), [Python](https://docs.lacunasoftware.com/articles/pki-express/python/trusting-in-custom-certificates) e [Ruby](https://docs.lacunasoftware.com/articles/pki-express/ruby/trusting-in-custom-certificates), e [Quais certificados são confiáveis](https://docs.lacunasoftware.com/articles/pki-express/validate-signatures#quais-certificados-são-confiáveis). 

## Signer

* Por padrão, uma instância do Signer aceita só certificados ICP-Brasil. Uma instância on-premises só aceita a ICP de testes da Lacuna depois que você adiciona a Lacuna Root Test v3 à seção `TrustArbitrator` dela e, quando os tipos de assinatura estão habilitados, a `SignatureTypes:Simple:TrustArbitrator` e `SignatureTypes:Qualified:TrustArbitrator`. As assinaturas avançadas usam o TrustArbitrator do contexto de segurança delas, que o administrador da instância define na área de administração. Veja [TrustArbitrator](https://docs.lacunasoftware.com/articles/signer/on-premises/trust-arbitrator). 
* O cenário de assinatura pública dos [exemplos do Signer](https://github.com/LacunaSoftware/SignerSamples) (.NET e Node.js) assina no sandbox do Signer, `https://signer-lac.azurewebsites.net`, onde os clientes desenvolvem e testam as integrações (para ter uma organização e uma chave de API nele, entre em contato com o [suporte](mailto:suporte@lacunasoftware.com)), com um certificado de teste da Lacuna emitido pela Lacuna CA Test v7 para o CPF 56072386105: o arquivo `nodejs/samples/56072386105.pfx`, senha `1234`. O `identifier` do participante precisa ser igual ao CPF do certificado.  
* Para assinar em nuvem pelo widget de assinatura embutida, o exemplo online usa um certificado de teste do BirdID (CPF 026.102.470-10) no ambiente de testes do BirdID, pareado lendo um QR code no aplicativo BirdID. Veja [Assinatura embutida](https://docs.lacunasoftware.com/articles/signer/embedded-signature). 

TODO(docs): se o sandbox confia na ICP de testes da Lacuna (os exemplos indicam que sim, mas nenhuma página registra uma execução bem-sucedida) e quais certificados de teste o Dropsigner (`www.dropsigner.com`) aceita.

## TrustBridge

* Um Servidor TrustBridge só confia na ICP de testes da Lacuna com `Certificates:Validation:UseLacunaTestPki` definida como `true` (padrão `false`); uma estação de trabalho faz o mesmo pela própria configuração de mesmo nome. **Somente para desenvolvimento**: com ela ligada, o Servidor registra `Critical` na inicialização e mostra um banner de aviso em todas as páginas administrativas. Veja As fontes de âncoras [no Servidor](https://docs.lacunasoftware.com/articles/trustbridge/configuration#as-fontes-de-âncoras) e [na estação de trabalho](https://docs.lacunasoftware.com/articles/trustbridge/workstation-configuration#as-fontes-de-âncoras), e [Certificados e credenciais de teste](https://docs.lacunasoftware.com/articles/trustbridge/quick-reference#certificados-e-credenciais-de-teste) na referência rápida do TrustBridge. 

TODO(docs): se cadastrar a Lacuna Root Test v3 na tela **Autoridades Certificadoras Confiáveis** do TrustBridge funciona em vez de `UseLacunaTestPki`.
