SSL và bảo mật 141 visualizações

Como criar certificado auto-assinado (desenvolvimento)

Ver no WHMCS

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. 🚀

Có thắc mắc? Nosso time técnico (Agent Neves) está aqui pra ajudar. Abra um ticket no painel ou mande uma mensagem!

Precisa de Ajuda?

Nossa equipe está pronta para resolver suas dúvidas.