Pular para o conteúdo
9 min de leitura

Let's Encrypt e Certbot na Prática: HTTPS Grátis, Automático e Sem Sustos

Compartilhar

Por Equipe Cloudoo ·

Como funciona o Let's Encrypt, o protocolo ACME, os desafios HTTP-01 e DNS-01, e como usar o Certbot para emitir e renovar certificados sozinho.

Neste artigo

Houve um tempo em que colocar HTTPS num site era caro e chato: você comprava um certificado por ano, provava sua identidade, gerava chaves na mão, colava textos no painel e torcia para não errar nenhum passo. O cadeado era um luxo reservado a lojas e bancos. Isso mudou de forma radical quando o Let's Encrypt apareceu e fez duas coisas ao mesmo tempo: tornou o certificado gratuito e, mais importante, tornou a emissão automática. Hoje não há desculpa técnica nem financeira para um site rodar sem cadeado.

Só que "grátis e automático" esconde algumas engrenagens que vale entender, porque é onde as pessoas se perdem. O certificado do Let's Encrypt dura pouco de propósito, a renovação precisa acontecer sozinha, e existe mais de uma forma de provar que o domínio é seu — cada uma com suas armadilhas. Este guia é sobre a prática: o que é o Let's Encrypt, como o protocolo por trás dele funciona em linguagem humana, e como o Certbot emite e renova seus certificados sem que você precise pensar nisso de novo. O foco aqui é a operação, não a teoria de tipos de certificado.

O que o Let's Encrypt realmente mudou

O Let's Encrypt é uma Autoridade Certificadora (CA) — a entidade em que os navegadores confiam para atestar que aquele cadeado pertence mesmo àquele domínio. A diferença dele para as CAs tradicionais é o modelo: emissão gratuita, para qualquer um, e totalmente por software. Você não fala com um humano, não envia documentos; um programa prova que você controla o domínio e o certificado sai em segundos.

Para que isso seja seguro, o Let's Encrypt fez uma escolha deliberada: os certificados valem só cerca de 90 dias. Parece incômodo, mas é a chave da segurança do modelo. Validade curta significa que um certificado vazado tem pouca janela de abuso e que ninguém pode ficar dependendo de um processo manual anual — a renovação tem que ser automática. Em vez de um evento raro e estressante uma vez por ano, o certificado vira algo que se renova sozinho a cada dois meses, sem você notar.

  • Só certificados DV. O Let's Encrypt emite certificados de Validação de Domínio: ele prova que você controla o domínio, nada mais. Não existe validação de empresa (OV/EV) — para a esmagadora maioria dos sites, DV é exatamente o suficiente.
  • Validade curta, renovação automática. Os ~90 dias forçam a automação, que é o que torna o sistema confiável. Um certificado que se renova sozinho nunca "vence de surpresa".
  • Gratuito e ilimitado (dentro de limites de taxa). Você emite quantos precisar, respeitando os limites de emissão por semana para não abusar da infraestrutura.

ACME: o protocolo que automatiza tudo

O que permite emitir um certificado sem intervenção humana é um protocolo chamado ACME (Automatic Certificate Management Environment). Em português claro: é a conversa padronizada entre o seu servidor e a CA para provar que o domínio é seu e receber o certificado. O Certbot é apenas um dos programas ("clientes ACME") que falam esse protocolo por você.

O fluxo, sem jargão, é este: o seu cliente ACME pede um certificado para seudominio.com; o Let's Encrypt responde "prove que você controla esse domínio, faça isto"; o cliente cumpre o desafio; o Let's Encrypt verifica; se bater, emite o certificado e o cliente o instala. Tudo isso em segundos. A parte interessante — e onde moram as decisões — é como você prova o controle do domínio. Existem dois desafios principais.

Desafio HTTP-01: prove pela porta 80

No desafio HTTP-01, o Let's Encrypt pede que você coloque um arquivo com um conteúdo específico num caminho conhecido do seu site (/.well-known/acme-challenge/...). Ele então acessa esse arquivo pela internet, na porta 80, e se o conteúdo bater, confirma que quem respondeu controla o domínio. É o desafio mais comum e mais simples, porque não exige mexer no DNS.

  • Precisa da porta 80 aberta. O Let's Encrypt bate no seu servidor via HTTP para ler o arquivo. Firewall bloqueando a 80 é a causa número um de falha aqui.
  • Valida um host por vez. HTTP-01 prova o domínio exato que respondeu. Não serve para emitir curinga (wildcard).
  • Ideal para o caso comum. Um site, alguns subdomínios explícitos, servidor acessível na internet: HTTP-01 resolve sem complicação.

Desafio DNS-01: prove pelo DNS (e ganhe wildcard)

No desafio DNS-01, em vez de um arquivo no site, você cria um registro TXT específico no DNS do domínio. O Let's Encrypt consulta esse TXT e confirma o controle. Ele é mais trabalhoso de automatizar (precisa que o cliente ACME tenha acesso à API do seu provedor de DNS), mas tem um superpoder: é o único que emite certificados curinga (*.seudominio.com), que cobrem todos os subdomínios de uma vez.

  • Emite wildcard. Um *.seudominio.com cobre app., blog., loja. e qualquer outro subdomínio com um único certificado.
  • Não depende da porta 80 nem do servidor estar exposto. A prova é no DNS, então funciona até para serviços internos que não recebem tráfego público.
  • Exige automação do DNS. Para renovar sozinho, o Certbot precisa de um plugin que crie/remova o TXT via API do seu provedor de DNS. Fazer na mão a cada renovação anula a graça.

Certbot na prática: emitir o certificado

O Certbot é o cliente ACME oficial e mais usado. Ele fala com o Let's Encrypt, resolve o desafio, baixa o certificado e — o pulo do gato — configura o seu servidor web e agenda a renovação. Ele funciona por plugins, e escolher o plugin certo é metade do trabalho.

  • Plugin nginx / apache. O Certbot lê a configuração do seu servidor web, emite o certificado e edita os arquivos de configuração para já servir HTTPS. É o caminho mais automático quando você roda Nginx ou Apache num VPS.
  • Plugin webroot. Você aponta o Certbot para a pasta pública do site e ele coloca o arquivo de desafio ali, sem tocar na configuração do servidor. Bom quando você quer controlar a configuração à mão.
  • Plugin standalone. O Certbot sobe um servidorzinho temporário na porta 80 só para responder ao desafio. Útil quando ainda não há servidor web rodando (mas exige a porta 80 livre no momento).
  • Plugins de DNS. Para DNS-01, há plugins específicos por provedor (Cloudflare, Route 53 e outros) que criam o TXT automaticamente via API — essenciais para wildcard renovável.

Antes de emitir "pra valer", use sempre o modo de teste (--dry-run). Ele executa todo o fluxo contra o ambiente de homologação do Let's Encrypt, provando que os desafios passam, sem gastar uma emissão real nem esbarrar nos limites de taxa. Só depois de o --dry-run passar limpo é que você emite o certificado de produção. Esse hábito evita queimar cota por causa de um firewall fechado ou um DNS ainda não propagado.

A renovação automática (a parte que importa de verdade)

Emitir o certificado é o evento único; renovar é o que mantém o site no ar mês após mês. Aqui está a boa notícia: o Certbot já cuida disso. Ao instalar, ele cria uma tarefa agendada (um timer do systemd ou uma entrada de cron) que roda duas vezes por dia e verifica se algum certificado está perto de vencer. Se estiver (normalmente a 30 dias do fim), ele renova sozinho e recarrega o servidor web.

  • Verifica com folga. A tarefa roda com frequência, mas só renova quando falta pouco — não há risco de renovar cedo demais nem de perder o prazo.
  • Recarregue o serviço no hook. De nada adianta renovar o arquivo se o Nginx/Apache continua servindo o certificado velho em memória. Um --deploy-hook que roda reload no servidor garante que o novo entra em vigor.
  • Teste a renovação sem esperar 90 dias. Rodar a renovação em modo de teste confirma, hoje, que tudo vai funcionar quando o prazo real chegar.

Quando o painel já resolve — e quando você está sozinho

Nem todo mundo precisa mexer no Certbot. Se você está numa hospedagem com cPanel, é muito provável que o AutoSSL já emita e renove certificados gratuitos automaticamente para os seus domínios, sem você fazer nada. Hosts gerenciados e plataformas modernas também costumam cuidar do HTTPS por baixo dos panos. Nesses casos, o melhor Certbot é o que você não precisa rodar.

A hora de botar a mão na massa é quando você tem um VPS "pelado" — um servidor onde você mesmo instalou o Nginx ou o Apache e é o único responsável pelo TLS. Aí o Certbot é o seu melhor amigo: ele transforma uma tarefa antes penosa em dois comandos e um timer. Saber qual dos dois mundos você está evita tanto o retrabalho (rodar Certbot onde o painel já faz) quanto o esquecimento (achar que "vem pronto" num VPS onde nada vem).

Os erros que mais derrubam a emissão

Quando a emissão falha, a causa quase sempre está numa destas quatro. Conhecê-las de antemão economiza uma tarde de tentativa e erro.

  • Porta 80 fechada (HTTP-01). O firewall ou o provedor bloqueia a 80 e o Let's Encrypt não consegue ler o arquivo de desafio. Abra a 80 antes de emitir.
  • DNS ainda não propagado. Você emite para um domínio cujo registro acabou de ser criado e ainda não propagou. Espere o DNS resolver globalmente antes de tentar.
  • Limites de taxa do Let's Encrypt. Emissões repetidas do mesmo domínio em pouco tempo (típico de quem fica tentando por causa de outro erro) esbarram no limite semanal. Use --dry-run justamente para não gastar cota real depurando.
  • Renovação que falha em silêncio. O caso mais perigoso: o timer parou, ninguém percebeu, e o certificado vence sozinho. Monte um alerta simples — um monitor externo que avisa quando faltam poucos dias para o vencimento — para nunca ser pego de surpresa.

Fechando o cadeado sem drama

O Let's Encrypt tirou o HTTPS do território dos especialistas e o colocou ao alcance de qualquer site, e o Certbot é a ferramenta que torna isso quase invisível. Entenda que o certificado dura pouco de propósito, escolha o desafio certo (HTTP-01 para o caso comum, DNS-01 quando precisa de wildcard), teste sempre com --dry-run antes de emitir de verdade, e garanta que a renovação automática está de pé com o hook de reload no lugar. Se o seu painel já cuida disso, ótimo — deixe cuidar. Se você está num VPS, dois comandos resolvem hoje e um timer resolve para sempre. O único erro grave é achar que, uma vez emitido, o certificado se cuida sozinho sem que ninguém verifique se a renovação continua funcionando.

Compartilhar

Compartilhar

Leituras relacionadas

Nenhum comentário ainda

Seja o primeiro a comentar.

Deixe seu comentário

Entre com sua conta Canverly para comentar. Você pode usar a mesma conta em qualquer site da rede.

Entrar com Canverly