Como criar certificado auto-assinado (desenvolvimento) Print

  • 0

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:

  1. Country Name (ex.: BR): Digite o código do seu país (BR para Brasil)
  2. State or Province (ex.: São Paulo): Seu estado
  3. Locality Name (ex.: São Paulo): Sua cidade
  4. Organization Name (ex.: Sua Empresa): Nome da sua empresa ou projeto
  5. Organizational Unit (ex.: TI): Seu departamento (ou deixe em branco)
  6. 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 localhost ou 127.0.0.1. Se tem um domínio local na sua rede, escreva o nome dele (ex.: meu-app.local)
  7. 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

  1. Coloque os arquivos certificado.crt e chave-privada.key na pasta do seu projeto
  2. 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:

  1. Duplo-clique no arquivo certificado.crt
  2. Clique em "Instalar Certificado"
  3. Escolha "Máquina Local" e avance
  4. Selecione "Colocar todos os certificados no repositório a seguir" e escolha "Autoridades de Certificação Raiz Confiáveis"
  5. Clique em "Avançar" e "Concluir"
  6. Reinicie o navegador

No Mac:

  1. Abra o Keychain Access
  2. Arraste o arquivo certificado.crt para a janela
  3. Procure pelo certificado (nome que você preencheu em "Common Name")
  4. Duplo-clique e mude "Trust" para "Always Trust"
  5. 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 localhost E meu-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!


Was this answer helpful?

« Back