A Let’s Encrypt é uma nova autoridade de certificação (CA) que fornece uma maneira fácil de obter e instalar certificados TLS/SSL gratuitos, permitindo assim acesso criptografado a qualquer servidor Web. Ele simplifica o processo, fornecendo um cliente certbot (anteriormente chamado letsencrypt), que tenta automatizar a maior parte das etapas necessárias. Atualmente, todo o processo de obtenção e instalação de um certificado é totalmente automatizado somente em servidores web Apache. No entanto, nada impede que você use o Let’s Encrypt para obter um certificado SSL gratuito para depois inserí-lo manualmente no servidor web de sua preferência, como o Nginx.

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

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:

echo 'deb http://ftp.debian.org/debian jessie-backports main' | tee /etc/apt/sources.list.d/backports.list

Em seguida, atualize a lista de pacotes:

apt-get update

E instale o certbot:

apt-get install python-certbot-apache -t jessie-backports

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.

Para testar o seu certificado SSL, visite: https://www.ssllabs.com/ssltest/analyze.html?d=dominio.com&latest

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 artigo irei ensinar a fazer o mesmo processo, só que no Nginx.