CodeGym /Cursos /Docker SELF /Gerenciamento de certificados e configuração de atualizaç...

Gerenciamento de certificados e configuração de atualização automática

Docker SELF
Nível 7 , Lição 4
Disponível

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:

  1. Abra o editor do Cron pro usuário atual:

    sudo crontab -e
    
  2. 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.

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

Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION