A Let’s Encrypt é uma autoridade de certificação (CA) que disponibiliza uma maneira fácil de obter e instalar certificados TLS/SSL gratuitos, permitindo assim acesso criptografado a qualquer servidor Web. Ela simplifica o processo, fornecendo o cliente certbot (anteriormente chamado letsencrypt) que tenta automatizar a maior parte das etapas necessárias. Porém, pelo menos até o momento, o processo de obtenção e instalação de um certificado só é totalmente automatizado em servidores Apache.

Nesse tutorial irei ensinar como instalar o certificado SSL numa máquina rodando Debian 8 e com o servidor web Apache.

1 – Instalando o Certbot

O primeiro é instalar o certbot, cliente do Let’s Encrypt, em seu servidor. Para isso, é necessário adicionar o repositório abaixo, atualizar a lista de pacotes e em seguida instalar o certbot:

echo 'deb http://ftp.debian.org/debian jessie-backports main' | tee /etc/apt/sources.list.d/backports.list
apt-get update
apt-get install python-certbot-apache -t jessie-backports

2 – Obtendo o certificado SSL

Com o Apache, esse passo é bastante simples. O cliente (certbot) obterá e instalará automaticamente um novo certificado SSL válido para os domínios que estiverem configurados no Apache.

Para executar a instalação interativa e obter um certificado para todos os domínios definidos na configuração do Apache, digite:

certbot --apache

O certbot verificará a configuração do Apache para localizar os domínios que podem ser beneficiados com o certificado.

A partir daí você terá que selecionar quais domínios terão o certificado SSL, deverá fornecer um endereço de e-mail para recuperação de chaves perdidas e quaisquer outros avisos e, além disso, você também poderá escolher entre deixar HTTP e HTTPS funcionando ao mesmo tempo ou forçar o HTTPS. O recomendado é forçar o HTTPS.

Quando a instalação estiver concluída, você poderá encontrar os certificados gerados em /etc/letsencrypt/live.

Você pode testar o certificado SSL do seu site visitando o SSL Labs.

3 – Renovando o certificado automaticamente

Os certificados emitidos pela Let’s Encrypt são válidos por 90 dias, mas é possível renová-los automaticamente 30 dias antes do vencimento com o certbot.

Para ativar o processo de renovação dos certificados você deve executar:

certbot renew

Agora vamos criar uma tarefa no cron para executar o comando acima todos os domingos à meia noite, execute:

crontab -e

e cole no final do arquivo:

0 0 * * 0 /usr/bin/certbot renew > /var/log/le-renew.log

Pronto! O cron irá rodar o certbot todas as segundas feiras à meia noite e guardará todas as informações executadas no processo no arquivo /var/log/le-renew.log.

No próximo tutorial irei ensinar a fazer o mesmo processo, só que no Nginx.