Guia Prático de Certificados Digitais no Windows (KEY, CRT, PFX, CA) | Windows
- Guia Prático de Certificados Digitais no Windows (KEY, CRT, PFX, CA) | Windows
🧩 1. Tipos de arquivos e PARA QUE SERVEM
🔐 1.1 Chave Privada (.key)
O que é
Arquivo que contém a chave criptográfica secreta.
Onde é usada
- Servidores HTTPS (Nginx, Traefik, Apache)
- Assinatura de certificados
- APIs seguras
- Containers Docker
⚠️ Importante
- Nunca compartilhe
- Quem tem a
.keypode se passar pelo servidor
📦 Exemplo de uso
Traefik → local.key
Nginx → site.key
IIS (indiretamente via PFX)
📜 1.2 Certificado Público (.crt / .pem)
O que é
Arquivo público que:
- Identifica o servidor ou serviço
- Contém a chave pública
- Pode ser autoassinado ou assinado por uma CA
Onde é usado
- HTTPS
- APIs
- Clientes que precisam confiar no servidor
- Cadeias TLS
📦 Exemplo de uso
Traefik → local.crt
Nginx → site.crt
Importação em browsers (para confiança)
📦 1.3 Certificado PFX (.pfx / .p12)
O que é
Arquivo combinado, que contém:
- Certificado (
.crt) - Chave privada (
.key) - (Opcional) cadeia de certificados
Onde é usado
- Windows / IIS
- Azure App Service
- Azure Key Vault
- Aplicações .NET
- APIs que exigem upload de certificado
📦 Exemplo de uso
IIS → importar PFX
Azure → upload do PFX
Aplicação .NET → leitura do PFX
🏛️ 1.4 Autoridade Certificadora (CA)
A lógica de certificados é a seguinte: Uma CA (autoridade certificadora) emite certificados. Quem precisa confiar nesses certificados, precisa conhecer essa CA. Isso é a lógica de toda a internet e todo sistema de informação que usa certificados. Do seu windows, ao linux.
O que é
Entidade que assina certificados e gera confiança.
Tipos
| Tipo | Uso |
|---|---|
| CA pública | Produção (Let’s Encrypt, DigiCert) |
| CA privada | LAB, intranet, ambientes internos |
Exemplos
- Let’s Encrypt (produção)
- mkcert (LAB)
- CA interna corporativa
🧰 2. COMO CRIAR CADA TIPO (COM EXEMPLOS)
🔑 2.1 Criar chave privada + certificado autoassinado
👉 Uso típico: LAB, testes, Traefik local, Passbolt local
openssl req -x509 -newkey rsa:2048 -nodes \
-keyout server.key \
-out server.crt \
-days 365 \
-subj "/CN=meuservico.local"
📂 Arquivos gerados
server.key→ chave privadaserver.crt→ certificado público
🧪 Onde usar
- Traefik (LAB)
- Nginx local
- Passbolt em ambiente interno
📦 2.2 Criar arquivo PFX (Windows / IIS / Azure)
👉 Uso típico: IIS, Azure, .NET
openssl pkcs12 -export \
-out server.pfx \
-inkey server.key \
-in server.crt
🔐 Será solicitada uma senha.
📂 Arquivo gerado
server.pfx
🧑💻 2.3 Script completo (automatizado)
@echo off
set CN=meuservico.local
openssl req -x509 -newkey rsa:2048 -nodes ^
-keyout server.key ^
-out server.crt ^
-days 365 ^
-subj "/CN=%CN%"
openssl pkcs12 -export ^
-out server.pfx ^
-inkey server.key ^
-in server.crt
pause
🏗️ 3. CONTEXTO REAL DE USO (RESUMO RÁPIDO)
| Contexto | Arquivo usado |
|---|---|
| Traefik | .crt + .key |
| Nginx | .crt + .key |
| Passbolt | .crt + .key |
| IIS | .pfx |
| Azure App Service | .pfx |
| APIs .NET | .pfx |
| Browser trust | .crt (importado) |
🟢 4. Certificados CONFIÁVEIS no Windows (LAB)
✅ Opção recomendada: mkcert
👉 Resolve 100% dos problemas de trust no Windows.
mkcert -install
mkcert vaultwarden.localhost passbolt.localhost aliasvault.localhost
Gera certificados:
- Confiáveis
- Sem aviso no navegador
- Perfeitos para Traefik / Docker
🔐 5. Certificados para PRODUÇÃO
🌍 Let’s Encrypt (recomendado)
- Gratuito
- Aceito por todos os browsers
- Automático (Traefik, Certbot)
Quando usar
- Produção
- Domínio público
- HTTPS real
⚠️ 6. Boas práticas de segurança
- ❌ Nunca commitar
.keyou.pfx - ✅ Use
.enve secrets - 🔐 Proteja PFX com senha forte
- 🔄 Renove certificados periodicamente
- 🚫 Autoassinado NUNCA em produção pública
🧠 7. Resumo final (mental model)
.key → segredo
.crt → público
.pfx → Windows / Azure
CA → confiança
Autoridades Certificadoras comuns
- Let’s Encrypt (produção)
- mkcert (LAB)
- DigiCert / GlobalSign (empresarial)