Como Criar Certificado Auto-assinado para Desenvolvimento
Bem-vindo, aprendiz! 🥋
Você está desenvolvendo uma aplicação e quer testá-la com HTTPS (aquele cadeadinho de segurança que aparece na barra do navegador)? Ótimo! Neste guia, vou te ensinar a criar um certificado auto-assinado — perfeito para ambientes de desenvolvimento, testes e certificação interna.
O Que é um Certificado Auto-assinado?
Um certificado digital é como um documento de identidade do seu site. Ele diz ao navegador: "sou quem digo que sou e comunico de forma segura". Um certificado auto-assinado é aquele que você mesmo cria e assina, sem precisar de uma autoridade certificadora externa (como a Let's Encrypt ou Comodo).
📌 Importante: Certificados auto-assinados são APENAS para desenvolvimento e testes. Em produção (site ao vivo), sempre use um certificado válido emitido por uma autoridade confiável. No painel da GeHost, oferecemos certificados Let's Encrypt gratuitos — use-os no seu site real!
Quando Usar Certificado Auto-assinado?
- Testar HTTPS localmente, na sua máquina
- Desenvolver uma aplicação interna da empresa
- Validar e certificar funcionalidades de segurança antes de subir ao vivo
- Ambiente de staging (pré-produção) controlado
Pré-requisitos
Você precisará de:
- Acesso ao terminal/prompt de comando da sua máquina (Windows, Mac ou Linux)
- A ferramenta OpenSSL instalada (vem por padrão em Mac e Linux; no Windows, pode precisar instalar)
- Conhecimento básico de linha de comando
Passo a Passo: Criar o Certificado
Abra o terminal e execute o comando abaixo. Ele cria um certificado válido por 365 dias:
No Linux/Mac:
openssl req -x509 -newkey rsa:2048 -keyout chave-privada.key -out certificado.crt -days 365 -nodes
No Windows (se tiver Git Bash ou WSL):
O comando acima funciona igual. Se usar PowerShell puro, consulte a documentação do OpenSSL para Windows.
O sistema vai pedir dados pessoais — preencha com calma:
- Country Name (ex.: BR): Digite o código do seu país (BR para Brasil)
- State or Province (ex.: São Paulo): Seu estado
- Locality Name (ex.: São Paulo): Sua cidade
- Organization Name (ex.: Sua Empresa): Nome da sua empresa ou projeto
- Organizational Unit (ex.: TI): Seu departamento (ou deixe em branco)
- Common Name (ex.: localhost ou seu domínio local): ⚠️ IMPORTANTE! Aqui você define para qual site/servidor este certificado vale. Se está testando localmente, escreva
localhostou127.0.0.1. Se tem um domínio local na sua rede, escreva o nome dele (ex.:meu-app.local) - Email Address: Seu e-mail (ou deixe em branco)
Após preencher, o sistema gera dois arquivos na pasta onde você rodou o comando:
- certificado.crt — o certificado público
- chave-privada.key — a chave privada (guarde com segurança!)
Configurar seu Servidor para Usar o Certificado
Agora que tem o certificado, precisa configurar sua aplicação para usar HTTPS. O processo depende da tecnologia:
Exemplo: Node.js / Express
- Coloque os arquivos
certificado.crtechave-privada.keyna pasta do seu projeto - No seu código Node.js, faça assim:
const https = require('https');
const fs = require('fs');
const express = require('express');
const app = express();
const opcoes = {
key: fs.readFileSync('chave-privada.key'),
cert: fs.readFileSync('certificado.crt')
};
https.createServer(opcoes, app).listen(3000, () => {
console.log('Servidor rodando em https://localhost:3000');
});
Exemplo: Python / Flask
from flask import Flask
app = Flask(__name__)
if __name__ == '__main__':
app.run(ssl_context=('certificado.crt', 'chave-privada.key'), host='localhost', port=5000)
Confiar no Certificado Localmente (Remover Aviso)
Quando você acessa https://localhost no navegador, ele vai mostrar um aviso: "Esta conexão não é segura" ou "Seu certificado não é confiável". Isso é esperado — o navegador não conhece seu certificado auto-assinado.
Para remover o aviso (apenas em dev), você precisa adicionar o certificado à lista de CAs confiáveis do seu sistema:
No Windows:
- Duplo-clique no arquivo
certificado.crt - Clique em "Instalar Certificado"
- Escolha "Máquina Local" e avance
- Selecione "Colocar todos os certificados no repositório a seguir" e escolha "Autoridades de Certificação Raiz Confiáveis"
- Clique em "Avançar" e "Concluir"
- Reinicie o navegador
No Mac:
- Abra o Keychain Access
- Arraste o arquivo
certificado.crtpara a janela - Procure pelo certificado (nome que você preencheu em "Common Name")
- Duplo-clique e mude "Trust" para "Always Trust"
- Reinicie o navegador
No Linux:
O processo varia conforme a distribuição. Para Ubuntu/Debian:
sudo cp certificado.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates
Dicas Importantes
🔐 Segurança: Sua chave privada (
chave-privada.key) é SUPER sigilosa. NUNCA a compartilhe, nem a coloque no controle de versão (git). Adicione à sua.gitignore.
⏰ Validade: O certificado que você criou dura 365 dias. Quando expirar, basta repetir o comando acima com um novo nome de arquivo ou sobrescrever.
🌐 Múltiplos Domínios: Se precisa de um certificado que funcione em
localhostEmeu-app.local, o processo é mais complexo (Subject Alternative Names). Para começar, crie um certificado por "Common Name" e teste.
✅ Produção: Quando seu app estiver pronto pra ir ao vivo, não use este certificado. Acesse o painel da GeHost, vá até "SSL/TLS" e ative um certificado gratuito (Let's Encrypt) — é automático e reconhecido por todos os navegadores.
Problemas Comuns?
P: O navegador ainda mostra "não seguro" depois que confiei no certificado.
R: Limpe o cache do navegador (Ctrl+Shift+Delete) e reinicie. Se o Common Name do certificado não bate com a URL que você está acessando (ex.: você acessou https://127.0.0.1 mas o certificado é pra localhost), o navegador continua avisando.
P: Recebi erro "openssl: command not found".
R: OpenSSL não está instalado. No Linux, rode sudo apt install openssl. No Mac, use brew install openssl. No Windows, baixe do site oficial ou use WSL.
P: Como gero um certificado que funcione em múltiplos endereços locais?
R: Isso envolve criar um arquivo de configuração com SANs (Subject Alternative Names). É mais avançado. Por enquanto, crie um certificado simples e, se precisar de múltiplos, consulte a documentação do OpenSSL ou fale com nosso time técnico.
Próximos Passos
Com seu certificado auto-assinado rodando, você agora pode:
- Testar APIs seguras e webhooks HTTPS localmente
- Validar funcionalidades de segurança (HSTS, CSP, etc.)
- Certificar sua aplicação antes de subir ao vivo
E quando estiver pronto pra produção? Venha para o painel da GeHost, ative um Let's Encrypt grátis, e seu site ganha um certificado "de verdade" — reconhecido por todos e renovado automaticamente. 🚀
Dúvidas? Nosso time técnico (Agent Neves) está aqui pra ajudar. Abra um ticket no painel ou mande uma mensagem!