Gerenciamento de certificados e configuração de atualização automática
1. Verificando os certificados atuais
Comando certbot certificates
Vamos começar com algo simples: como descobrir quais certificados já estão instalados no seu servidor? O Let's Encrypt fornece uma ferramenta super útil — certbot
. Com o comando certbot certificates
, você pode obter informações detalhadas sobre os certificados atuais.
sudo certbot certificates
O resultado será algo assim:
Found the following certs:
Certificate Name: example.com
Domains: example.com www.example.com
Expiry Date: 2023-12-31 10:00:00+00:00 (VALID: 89 days)
Certificate Path: /etc/letsencrypt/live/example.com/fullchain.pem
Private Key Path: /etc/letsencrypt/live/example.com/privkey.pem
Aqui estão os detalhes importantes:
- Nome do certificado.
- Domínios cobertos pelo certificado.
- Data de expiração (pra você saber quando atualizá-lo).
- Caminho para os arquivos do certificado e da chave privada.
Dica valiosa:
Se você tem o hábito de ignorar notificações sobre prazos de validade, este comando será seu melhor amigo. Afinal, ninguém quer ser aquele programador que descobre sobre um certificado expirado pelos usuários irritados.
2. Atualização automática de certificados
Por trás dos bastidores do Let's Encrypt
Os certificados do Let's Encrypt têm validade de 90 dias pra minimizar riscos de segurança. Mas atualizar manualmente a cada 3 meses — não rola, né? Felizmente, pra automatizar isso, dá pra usar o comando embutido:
sudo certbot renew
Esse processo verifica todos os certificados e atualiza automaticamente aqueles que estão próximos de expirar.
Configurando atualização automática com Cron
Cron
é uma ferramenta embutida no Linux pra agendar tarefas. Ele executa comandos com base em um cronograma, e é exatamente isso que precisamos pra automatizar a atualização dos certificados. Aqui está como configurar o Cron pra isso:
Abra o editor do
Cron
pro usuário atual:sudo crontab -e
Adicione a seguinte linha ao final do arquivo:
0 0 * * * certbot renew --quiet
Esse comando executa
certbot renew
todo dia à meia-noite. A flag--quiet
suprime saídas desnecessárias, então a atualização vai rolar silenciosamente sem incomodar ninguém.Salve as alterações e saia do editor.
Agora seu servidor vai atualizar os certificados automaticamente, e você pode relaxar quanto à expiração (ou quase).
3. Atualização manual de certificados
Às vezes, a automação não resolve todos os problemas e é necessário atualizar os certificados manualmente. Por exemplo, se você acabou de adicionar um novo domínio na configuração do site, precisará solicitar um novo certificado manualmente. Mais uma vez, usamos o certbot
:
Exemplo de comando:
sudo certbot renew
Atualizando certificado para um domínio específico
Se você precisar atualizar um certificado associado a um domínio específico, use o seguinte formato de solicitação:
sudo certbot certonly --nginx -d example.com -d www.example.com
Aqui:
--nginx
indica que a configuração será automaticamente aplicada ao servidor Nginx. Para Apache, use--apache
.- Os flags
-d
listam os domínios para os quais o certificado precisa ser emitido.
Depois de executar o comando, o Certbot verificará a configuração do servidor, solicitará um novo certificado e o configurará.
4. Notificações e monitoramento
Notificações por Email
Ao instalar o Certbot, ele pediu pra você informar seu endereço de email. Se você informou, vai receber notificações 20 dias antes do certificado expirar. Caso você não tenha informado o email ou queira trocá-lo, dá pra fazer assim:
sudo certbot register --update-registration --email newaddress@example.com
Agora nenhuma situação vai te pegar desprevenido. Bom, quase.
Checagem externa
Existem serviços externos que podem te ajudar a monitorar a validade dos seus certificados. Por exemplo, SSL Labs. Só precisa colocar o endereço do site, e o serviço vai checar o certificado dele, incluindo a validade, a cadeia de confiança e o nível de segurança.
5. Remoção de certificados desnecessários
Às vezes, os certificados antigos ficam obsoletos, por exemplo, quando você para de manter um domínio. Para evitar bagunçar o sistema, é melhor removê-los.
Comando para remoção:
sudo certbot delete
O Certbot exibirá uma lista de certificados disponíveis e permitirá que você escolha qual deseja remover.
Dica útil:
Tenha cuidado ao remover certificados para não derrubar acidentalmente um site ativo. Sempre verifique se o certificado não está mais sendo usado em nenhum lugar.
6. Exemplos e Debug de Erros
Verificação após atualização
Depois de qualquer alteração ou atualização de certificados, sempre verifique se o site está funcionando corretamente. A forma mais fácil de fazer isso é usando o curl
:
curl -I https://example.com
Resultado esperado — código HTTP/1.1 200 OK
.
Se algo deu errado, a primeira coisa a fazer é olhar os logs:
Para Nginx:
sudo tail -f /var/log/nginx/error.log
Para Apache:
sudo tail -f /var/log/apache2/error.log
Erro comum: "Too Many Requests"
Se você solicitar novos certificados com muita frequência, o Let's Encrypt pode bloquear seu acesso com o erro "Too Many Requests". Nesses casos, é recomendado usar o servidor de teste do Let's Encrypt:
sudo certbot certonly --test-cert --nginx -d example.com
Este comando gera um certificado de teste, que não é válido para uso real, mas ajuda a verificar a configuração.
7. Etapa final: reinício automático do servidor web
O Let's Encrypt atualiza os arquivos de certificados, mas servidores web como Nginx ou Apache não percebem as alterações até que você os reinicie. Isso também pode ser automatizado. Atualize o registro no Cron:
0 0 * * * certbot renew --quiet && systemctl reload nginx
Ou para Apache:
0 0 * * * certbot renew --quiet && systemctl reload apache2
Agora, após a atualização, qualquer certificado será imediatamente aplicado ao servidor.
Essa aula é destinada a garantir que você possa dormir tranquilo à noite, sabendo que seus certificados são atualizados automaticamente, seus sites estão protegidos e você não receberá uma ligação do chefe às três da manhã com as palavras "Os usuários estão reclamando que o site está fora do ar". Gerenciar certificados é uma habilidade importante que será útil no trabalho real, especialmente se você planeja trabalhar com a implantação de grandes aplicativos web ou engenharia DevOps.
GO TO FULL VERSION