Meta descrição: Aprenda a configurar SSL grátis na VPS com Certbot e renovação automática em minutos, passo a passo, para Nginx ou Apache.

Ter um site ou painel rodando em uma VPS sem HTTPS hoje é pedir para ter dor de cabeça: navegadores mostram aviso de “não seguro”, APIs podem recusar requisições e você fica mais exposto a ataques simples de interceptação. A boa notícia é que dá para resolver isso sem gastar nada com certificado pago usando o Let’s Encrypt na VPS e o Certbot.
Neste guia, você vai aprender a fazer a configuração completa de SSL grátis na VPS com Certbot e renovação automática com foco em Nginx, porque é um cenário muito comum em servidores que hospedam aplicações, painéis e automações (como n8n, por exemplo). A ideia aqui é ser bem prático: preparar a VPS, emitir o certificado corretamente, ativar o HTTPS no seu domínio e deixar a renovação rodando sozinha para você não precisar “lembrar” do SSL a cada 90 dias.
Ao longo do artigo, também vou te mostrar como validar se o certificado está ok, como evitar erros frequentes (como porta 80 fechada, DNS apontando errado e conflitos com firewall), e quais comandos são realmente úteis no dia a dia.
Se você seguir o passo a passo, no final você terá:
- HTTPS funcionando com cadeado no navegador;
- Redirecionamento HTTP → HTTPS;
- Renovação automática do Let’s Encrypt configurada e testada;
- Um checklist simples para manutenção e solução de problemas.
Vamos começar pelo básico: entender o que é SSL e por que o Certbot + Let’s Encrypt virou o “padrão de fato” para quem administra VPS.
O que é SSL grátis e por que usar Certbot e Let’s Encrypt na sua VPS
Quando falamos em SSL (hoje o termo mais correto é TLS), estamos falando da camada de segurança que cria um canal criptografado entre o navegador do usuário e o seu servidor. É isso que faz aparecer o cadeado no browser e garante que dados (login, senha, tokens, formulários) não trafeguem “abertos” pela internet.
Por que SSL é indispensável mesmo em projetos pequenos
Mesmo que você tenha um projeto simples (um blog, um painel administrativo, um subdomínio de automação), o HTTPS costuma ser obrigatório por alguns motivos práticos:
- Confiança e UX: o aviso “não seguro” afasta usuários e clientes.
- Compatibilidade: muitos serviços e integrações exigem HTTPS para webhooks e callbacks.
- SEO: HTTPS é um sinal positivo para ranqueamento (não faz milagre, mas ajuda).
- Segurança real: impede que intermediários leiam ou alterem tráfego com facilidade.
O que é “SSL grátis” com Let’s Encrypt
O Let’s Encrypt é uma autoridade certificadora (CA) que emite certificados TLS sem custo. O “pulo do gato” é que esses certificados têm validade curta (normalmente 90 dias), o que incentiva a automação da renovação — e é aqui que o Certbot brilha.
Por que usar Certbot
O Certbot é uma ferramenta que automatiza praticamente tudo:
- valida que você controla o domínio (por desafio HTTP-01 ou DNS);
- pede e instala o certificado;
- configura o servidor web (no caso do Nginx, pode editar o site automaticamente);
- renova o certificado sem você precisar lembrar.
Na prática, combinar Let’s Encrypt na VPS com Certbot é a forma mais rápida e confiável de colocar HTTPS no ar. E quando você adiciona a renovação automática SSL com cron (ou systemd timer), você transforma algo que seria “manutenção recorrente” em uma tarefa invisível.
Um exemplo bem comum: n8n e painéis
Se você roda n8n, Portainer, dashboards internos ou qualquer app web na VPS, o HTTPS resolve dois problemas de uma vez:
1) elimina o alerta de segurança no acesso ao painel;
2) evita bloqueios em webhooks, integrações e autenticação.
Agora que o conceito está claro, vamos preparar a VPS para que a emissão do certificado funcione na primeira tentativa.
🤖 Indicação: onde aprender n8n e Agentes de IA com um passo a passo bem mão na massa
Se você chegou até aqui, provavelmente está montando (ou já montou) uma VPS para publicar alguma aplicação — e é bem comum que o próximo passo seja colocar automações para rodar 24/7 com n8n, webhooks, integrações e, claro, HTTPS.
Nesse ponto, um caminho que achei bem consistente é a Formação Agentes de IA (n8n) da Hora de Codar. Ela é bem prática, começa do básico e vai avançando até projetos com agentes, integrações e uma configuração mais profissional (incluindo domínio e SSL). O legal é que você sai com portfólio, não só teoria: são 11+ cursos, 221+ aulas, 20h+ de conteúdo e 21+ projetos, com uma comunidade bem ativa.
Se você quiser conhecer a grade e ver se faz sentido para o seu objetivo (trabalhar com automações, freelas ou projetos próprios), dá uma olhada aqui: https://app.horadecodar.com.br/lp/formacao-agentes-de-ia-n8n?utm_source=blog
Vale especialmente se a sua meta é unir infraestrutura (VPS, Nginx, SSL) com o que realmente dá resultado no dia a dia: agentes e automações funcionando de forma confiável.
Pré-requisitos: preparando a VPS para receber o SSL
A maior parte dos erros ao configurar SSL não está no Certbot em si, mas na infraestrutura ao redor: DNS apontando errado, firewall bloqueando portas, Nginx sem server_name, ou o domínio nem chegando na sua VPS. Então, antes de instalar qualquer coisa, vale gastar alguns minutos garantindo que o “caminho” está pronto.
1) Um domínio apontando para a VPS
Você precisa de um domínio (ou subdomínio) apontando para o IP público do servidor.
- Crie um registro A (ex.:
app.seudominio.com) apontando para o IP da VPS. - Aguarde a propagação (às vezes é imediato, às vezes leva alguns minutos).
Uma checagem rápida é usar no seu computador:
ping app.seudominio.com
Ele deve resolver para o IP da sua VPS. (Nem sempre o ping responde, mas a resolução DNS já ajuda.)
2) Portas 80 e 443 liberadas
O Let’s Encrypt, no desafio HTTP-01 (o mais comum), precisa alcançar seu servidor na porta 80 (HTTP).
No Ubuntu com UFW, por exemplo:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Se você usa outro firewall (iptables, cloud firewall), a regra tem que existir lá também.
3) Nginx instalado e um virtual host básico funcionando
Você não precisa estar com HTTPS antes do Certbot, mas precisa ter o Nginx servindo algo em HTTP.
Verifique se o Nginx está ativo:
sudo systemctl status nginx
E se a configuração está ok:
sudo nginx -t
Depois, crie ou revise um arquivo de site (ex.: /etc/nginx/sites-available/app.seudominio.com) com algo assim em HTTP:
server_name app.seudominio.com;listen 80;
Se o Nginx não souber qual domínio ele atende, o Certbot pode emitir o certificado, mas a instalação automática pode falhar ou aplicar no lugar errado.
4) Atualize pacotes e sincronize horário
Certificados dependem de data/hora correta (se o relógio estiver errado, pode dar erro estranho de validade). Então:
sudo apt update && sudo apt upgrade -y
E garanta NTP:
timedatectl status
Se estiver tudo certo até aqui, você está no cenário perfeito para a próxima etapa: configurar Certbot no Nginx e emitir seu SSL grátis com Let’s Encrypt na VPS.
Vídeo recomendado no YouTube (VPS + n8n, perfeito para complementar)
Se o seu objetivo é rodar automações (como o n8n) em VPS com domínio e HTTPS, este vídeo encaixa muito bem com o que você fez neste guia. Ele mostra a instalação do n8n na VPS de um jeito bem direto — e, depois de colocar o n8n no ar, você aplica exatamente o que aprendeu aqui para ativar o HTTPS com Certbot.
Assista aqui e já aproveite para seguir o passo a passo no seu servidor:
Link direto: https://www.youtube.com/embed/VCKzXFk_XjM?si=eOBTMrjZNPj3q07Z
Se você estiver montando um ambiente “profissional” (n8n + domínio + SSL + renovação automática), esse vídeo ajuda a fechar o ciclo: infraestrutura pronta e automação rodando com segurança.
Como instalar o Certbot e obter SSL no Nginx de forma simples
Com a VPS pronta (DNS ok, portas liberadas e Nginx respondendo em HTTP), a emissão do certificado costuma ser bem direta. Vou mostrar o caminho mais comum em servidores Ubuntu/Debian, que é onde a maioria dos projetos em VPS roda.
Instalando Certbot e o plugin do Nginx
No Ubuntu/Debian, você pode instalar via APT:
sudo apt install certbot python3-certbot-nginx -y
Esse plugin é importante porque permite que o Certbot converse com o Nginx e ajuste a configuração automaticamente.
Emitindo o certificado (modo recomendado para iniciantes)
Agora execute:
sudo certbot --nginx -d app.seudominio.com
O que acontece aqui:
- o Certbot valida seu domínio (o Let’s Encrypt tenta acessar um arquivo temporário via HTTP);
- emite o certificado;
- oferece opções para:
- manter HTTP e HTTPS;
- ou redirecionar tudo para HTTPS (recomendado na maioria dos casos).
Se o seu servidor tiver mais de um domínio, você pode adicionar vários -d:
sudo certbot --nginx -d seudominio.com -d www.seudominio.com
Confirmando que o SSL entrou em funcionamento
Assim que o processo terminar, confira:
1) Teste a configuração do Nginx:
sudo nginx -t
2) Recarregue o serviço:
sudo systemctl reload nginx
3) Abra no navegador:
https://app.seudominio.com
Se você marcou a opção de redirecionamento, http://app.seudominio.com deve cair automaticamente no HTTPS.
Onde ficam os arquivos do certificado
Isso é útil para debug e para integrações:
- Certificados:
/etc/letsencrypt/live/app.seudominio.com/ - Configurações do Certbot:
/etc/letsencrypt/
Você geralmente não precisa mexer nesses arquivos manualmente, mas é bom saber onde estão.
Dica rápida: quando o –nginx falha
Se a instalação automática não funcionar (por exemplo, por configuração muito customizada), você ainda pode emitir apenas o certificado usando --webroot e configurar o Nginx manualmente. Mas, para iniciantes, o fluxo --nginx resolve em 90% dos casos.
Com o certificado emitido, falta a parte mais importante para não virar “tarefa mensal”: deixar a renovação automática SSL com cron (ou timer) funcionando e testada.
Configurando a renovação automática do SSL com cron e Certbot
O Let’s Encrypt emite certificados com validade curta (normalmente 90 dias). Isso é ótimo para segurança, mas só funciona bem se você automatizar a renovação. A melhor parte: o Certbot já foi feito pensando nisso.
Entendendo como a renovação funciona
O Certbot renova certificados que estão “perto de vencer”. Você pode rodar o comando de renovação diariamente (ou duas vezes por dia) que ele só renova quando for necessário.
O comando padrão é:
sudo certbot renew
1) Teste a renovação antes de automatizar
Antes de colocar no cron, faça um teste usando o modo “dry-run” (simulação):
sudo certbot renew --dry-run
Se isso passar sem erros, você tem confiança de que a automação vai funcionar.
2) Configurando cron (abordagem simples e universal)
Você pode agendar o renew para rodar, por exemplo, todos os dias às 03:30.
Edite o crontab do root:
sudo crontab -e
Adicione uma linha:
30 3 * * * certbot renew --quiet --deploy-hook "systemctl reload nginx"
O que isso faz:
--quiet: reduz logs (bom para não lotar e-mail de cron);--deploy-hook: se renovar algum certificado, ele recarrega o Nginx para aplicar.
3) Alternativa: systemd timer (muitos servidores já usam)
Em algumas distros, a instalação do Certbot já cria um timer do systemd que roda a renovação automaticamente. Você pode verificar com:
systemctl list-timers | grep certbot
Se existir e estiver ativo, você talvez nem precise do cron. Mas o cron continua sendo uma solução fácil, clara e compatível.
4) Como garantir que você vai saber se algo falhar
Uma forma prática é, de tempos em tempos, checar os logs do Certbot:
sudo journalctl -u certbot --since "7 days ago"
Ou, se estiver usando cron, olhar /var/log/syslog e procurar por “CRON” e “certbot”.
Com a renovação automática configurada, você eliminou o risco de “o SSL venceu e o site caiu”. Agora vamos para a etapa final: verificação, manutenção e os erros mais comuns que fazem muita gente travar.
💻 VPS para rodar Nginx, Certbot e n8n: por que a Hostinger costuma ser uma escolha tranquila
Para colocar em prática este guia (Nginx + SSL grátis na VPS com Certbot e renovação automática), você precisa de uma VPS estável, com bom uptime e fácil de gerenciar. Uma opção que tende a facilitar bastante a vida — principalmente para quem está começando — é a VPS da Hostinger, porque o ambiente é bem amigável, dá para escalar recursos quando o projeto cresce e ela já tem fluxo bem conhecido para hospedar apps.
Um detalhe interessante para quem usa automações: a Hostinger oferece VPS com n8n pré-instalado, o que acelera muito o “tempo até estar em produção”. A partir daí, você configura domínio e aplica o Certbot para colocar tudo em HTTPS.
Se quiser ver os planos e condições pelo link de indicação, é aqui: https://www.hostinger.com.br/horadecodar
E, se for contratar, use o cupom HORADECODAR para garantir desconto.
No geral, eu gosto dessa abordagem porque você resolve o “chão” (servidor e estabilidade) e foca no que importa: publicar seus serviços com segurança, sem ficar brigando com infra o tempo todo.
Dicas de verificação, manutenção e resolução de problemas frequentes
Depois que o SSL está emitido e a renovação automática está rodando, o trabalho vira bem mais leve. Mesmo assim, existem algumas verificações rápidas que vale ter no seu “kit de manutenção”, principalmente se você mexe em DNS, proxy reverso, firewall ou sobe novas aplicações na VPS.
Verificando se o certificado está válido e quando expira
Você pode checar a lista de certificados gerenciados pelo Certbot:
sudo certbot certificates
E também testar o handshake via OpenSSL:
echo | openssl s_client -servername app.seudominio.com -connect app.seudominio.com:443 2>/dev/null | openssl x509 -noout -dates
Assim você confirma notBefore e notAfter (início e expiração).
Problemas comuns (e como resolver sem drama)
1) DNS não aponta para a VPS
- Sintoma: o Certbot falha na validação (“unauthorized”, “invalid response”).
- Correção: confira o registro A/AAAA, remova CDN/proxy temporariamente (se estiver usando) e tente novamente.
2) Porta 80 bloqueada
- Sintoma: validação HTTP-01 falha.
- Correção: libere 80 no firewall da VPS e, se existir, no firewall do provedor.
3) Nginx não está servindo o domínio correto
- Sintoma: o Let’s Encrypt acessa a VPS, mas cai no “default server”.
- Correção: garanta
server_namecorreto e que o site está habilitado emsites-enabled.
4) Conflito com Cloudflare / proxy
- Sintoma: validação falha ou o certificado “não muda”.
- Correção: para emitir via HTTP-01, muitas vezes ajuda desativar o proxy (ficar “DNS only”) durante a emissão/renovação, ou usar desafio DNS.
5) Redirecionamento mal configurado (loop)
- Sintoma: navegador fica em “ERRTOOMANY_REDIRECTS”.
- Correção: revise regras de redirect no Nginx e também em app/proxy (às vezes o app força HTTPS e o Nginx também, gerando loop).
Boas práticas rápidas de manutenção
- Sempre que mudar configs do Nginx:
sudo nginx -tantes de recarregar. - Depois de alterações relevantes: rode
sudo certbot renew --dry-runpara garantir que a renovação continua ok. - Se você usa proxy reverso para apps (como n8n), confirme que a aplicação recebe o header correto (por exemplo
X-Forwarded-Proto https) quando necessário.
Com essas checagens, seu ambiente fica estável e você evita aquele cenário clássico: “tudo estava funcionando até eu mexer em X”. E agora que seu HTTPS está bem resolvido, fica muito mais seguro publicar ferramentas e automações na sua VPS.
O que é o Certbot e por que é importante para SSL grátis na VPS?
O Certbot é uma ferramenta gratuita e automatizada que facilita a obtenção e renovação de certificados SSL/TLS da Let’s Encrypt. Ele permite garantir conexão segura (HTTPS) em seu servidor VPS, sem custos, protegendo os dados dos usuários e melhorando o SEO do seu site.
Como configurar o SSL grátis na VPS usando Certbot para Nginx ou Apache?
Para configurar SSL grátis na sua VPS, instale o Certbot com o comando apropriado para seu sistema e servidor (Nginx ou Apache). Em seguida, execute o Certbot utilizando os comandos como ‘certbot –nginx’ ou ‘certbot –apache’ e siga as instruções para gerar e instalar o certificado SSL automaticamente.
O Certbot renova automaticamente o certificado SSL na VPS?
Sim. Após a instalação, o Certbot agenda tarefas automáticas (via cron ou systemd) para renovar o certificado antes do vencimento. Dessa forma, seu site continuará seguro sem precisar de ações manuais periódicas.
Conclusão
Configurar SSL grátis na VPS com Certbot e renovação automática é uma daquelas tarefas que parecem “coisa de sysadmin”, mas na prática vira um processo bem previsível quando você segue a ordem certa: primeiro DNS e portas, depois Nginx em HTTP, em seguida emissão com Let’s Encrypt na VPS, e por fim a renovação automática SSL com cron (com teste via --dry-run).
A grande vantagem desse setup é que ele escala com você. Hoje pode ser um site simples; amanhã pode ser um painel, um webhook, um n8n rodando para clientes — e o HTTPS deixa tudo mais confiável, compatível e seguro.
Se você quiser, me diga qual é o seu cenário (Ubuntu/Debian? Nginx ou Apache? domínio com Cloudflare?) e eu adapto os comandos certinho para o seu caso, incluindo redirecionamento, proxy reverso e melhores práticas de segurança.

