Blog

Tutoriais, guias e novidades do produto.

Segurança e Backups

Certificados HTTPS gratuitos com o Let's Encrypt

2 novembro 2026 6 min de leitura
Compartilhar esta publicação

O Let's Encrypt é uma autoridade certificadora que emite certificados HTTPS gratuitos para o seu domínio. No seu VPS, você obtém um certificado com poucos comandos usando o Certbot, ou sem nenhum comando usando o Caddy, e os dois o renovam sozinhos. Há dois requisitos: o domínio precisa apontar para o endereço IP do seu servidor e as portas 80 e 443 precisam estar abertas para acesso externo.

Por que você precisa de HTTPS?

O HTTPS criptografa o tráfego entre o navegador e o servidor. Terceiros na rede não conseguem ler a senha de um formulário de login nem os detalhes de um pedido. Os navegadores podem mostrar um aviso de "não seguro" em sites sem HTTPS. Um certificado do Let's Encrypt é gratuito, então não sobra um bom motivo para ficar sem HTTPS.

Antes de começar

  • O registro A do domínio precisa mostrar o endereço IP do seu servidor. Para conferir, execute dig +short example.com. A saída deve ser o endereço IP do seu servidor.
  • As portas 80 e 443 precisam estar abertas, porque a validação acontece na porta 80 (HTTP-01). Se você usa o ufw, execute sudo ufw allow 80/tcp e sudo ufw allow 443/tcp. Se o seu servidor tem um firewall separado no painel, confira as regras lá também.
  • Se o domínio tem um registro AAAA (IPv6), ele também precisa apontar para este servidor. Se não aponta, apague o registro.
  • O seu servidor web precisa estar rodando e conhecer este domínio.

Instalando e conferindo com o Certbot no Nginx ou no Apache

As instruções oficiais do Certbot recomendam o pacote snap. Confirme que o snapd está instalado no servidor (no Ubuntu geralmente está) e remova qualquer Certbot mais antigo instalado pelo apt.

  1. Instale o Certbot: sudo snap install --classic certbot
  2. Deixe o comando disponível em qualquer lugar: sudo ln -s /snap/bin/certbot /usr/local/bin/certbot
  3. Obtenha o certificado e instale-o no servidor web. Execute sudo certbot --nginx para o Nginx ou sudo certbot --apache para o Apache.
  4. Responda às perguntas: seu endereço de e-mail, para quais domínios você quer o certificado e se o HTTP deve ser redirecionado para HTTPS.
  5. Teste a renovação: sudo certbot renew --dry-run

Se você quer apenas obter o certificado e configurar o resto por conta própria, execute sudo certbot certonly --nginx. O pacote do Certbot adiciona sozinho uma tarefa agendada (cron ou um timer do systemd), e você a vê na saída de systemctl list-timers. O sudo certbot certificates lista seus certificados e as datas de validade. O Certbot renova um certificado quando o prazo dele está acabando, e você não faz nada. A renovação ainda pode falhar um dia (por exemplo, por causa de uma regra de firewall), então execute --dry-run de vez em quando.

Para conferir o certificado, olhe primeiro o ícone de cadeado na barra de endereço do navegador. Para ver a data de validade com um comando, execute:

echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -dates

A linha notAfter na saída é a data de validade do certificado. Se você não usa o redirecionamento que o Certbot adiciona, redirecione o HTTP para HTTPS por conta própria. No Nginx, adicione a linha return 301 https://$host$request_uri; ao bloco server que escuta na porta 80.

Com o Caddy e sem comandos

Se você usa o Caddy, não precisa instalar nada extra. Para um domínio na configuração dele, o Caddy obtém o certificado do Let's Encrypt ou do ZeroSSL, renova-o e redireciona o HTTP para HTTPS. Segundo a documentação oficial, os registros A e AAAA do domínio precisam apontar para o servidor, as portas 80 e 443 precisam estar acessíveis de fora, e a pasta de dados do Caddy precisa ser persistente e gravável. Se você roda o Caddy no Docker, monte essa pasta em um volume. Caso contrário, os certificados somem quando o contêiner é apagado, e pedi-los de novo pode atingir um limite de requisições.

Certificados curinga (wildcard)

Um certificado curinga (*.example.com) cobre todos os subdomínios com um único certificado e só pode ser obtido com a validação DNS-01. Essa validação não usa a porta 80. Ela pede que você coloque um registro TXT no DNS do seu domínio. Para isso, seu provedor de DNS precisa de uma API, e você guarda a chave da API no servidor. A documentação do Let's Encrypt chama de arriscado guardar essas chaves em um servidor web. Se você não precisa de um curinga, obter certificados para domínios individuais com HTTP-01 é mais simples e não exige guardar uma chave de DNS.

Erros comuns

SintomaCausa provávelSolução
A validação falha, domínio não encontradoO registro A aponta para o IP errado ou ainda não propagouConfira o IP com dig +short example.com e espere
TimeoutA porta 80 está fechadaAbra a 80 no ufw e no firewall do painel, se você tiver um
A validação passa às vezes e falha em outrasO registro AAAA aponta para outro servidorCorrija ou apague o registro AAAA
Erro de limite de requisições (rate limit)Tentativas demaisUse --dry-run para testes e consulte a página oficial para ver os limites
A renovação não rodaSem tarefa agendada, ou o servidor web bloqueia a porta 80O sudo certbot renew --dry-run mostra o erro

A mensagem de erro geralmente diz qual validação falhou e qual endereço o Let's Encrypt tentou acessar no seu servidor. Leia a mensagem como ela é. A resposta costuma estar ali mesmo.

Segundo a página oficial do Let's Encrypt, há um limite de 5 certificados por semana para o mesmo conjunto de nomes de domínio e de 5 validações com falha por hora para o mesmo nome de domínio. Por isso, use --dry-run enquanto experimenta. Ele testa a renovação no ambiente de homologação (staging) e não gasta o seu limite real.

Nos apps prontos da Seturack

Os apps prontos (WordPress, Nextcloud e outros) abrem por HTTPS em um endereço sslip.io derivado do seu endereço IP, então nenhum nome de domínio é necessário. Quando você conecta o seu próprio domínio, o Caddy obtém o certificado de novo e você não instala nada extra. Os passos para informar o domínio ao Caddy e ao app estão neste artigo de ajuda.

Comentários0

Ainda não há comentários

Seja a primeira pessoa a compartilhar sua opinião.

Participe da discussão

Entre ou crie uma conta para deixar um comentário.

Não perca nenhuma publicação

Receba nossos tutoriais, guias e novidades de produtos na sua caixa de entrada.

Sua inscrição no nosso boletim informativo foi concluída.