Sobre o Let's Encrypt
O projeto Let's Encrypt entrou na fase beta pública na semana passada, começando a oferecer certificados TLS/SSL válidos a qualquer site interessado.
O objetivo do projeto é oferecer, gratuitamente, uma maneira simples e automatizada para administradores ativarem e manterem o protocolo TLS (antigamente SSL) em seus websites.
Ele é de código aberto e pode ser encontrado no github: https://github.com/letsencrypt/letsencrypt
.
Instalação do certificado
Antes de qualquer coisa, é necessário baixar os scripts:
$ git clone https://github.com/letsencrypt/letsencrypt
$ cd letsencrypt
A documentação está disponível em: http://letsencrypt.readthedocs.org/en/latest/index.html
A maneira mais simples de obter e configurar os certificados é com o script letsencrypt-auto
rodado como root. Se você não gosta da ideia de executar esse script como root, há um projeto paralelo (não oficial) que talvez lhe interese: https://github.com/diafygi/letsencrypt-nosudo.
Executando o letsencrypt-auto:
$ sudo ./letsencrypt-auto
Ele irá procurar as dependências necessárias e, caso não encontre, automaticamente usará o apt-get para instalá-las.
O let's encrypt mostrará uma lista com os sites encontrados no servidor:
O script enviará uma requisição ao Let's Enrypt solicitando um certificado. Após verificar que o servidor realmente é proprietário da entrada DNS correspondente, o certificado será enviado. Esse processo é automático e não demora mais que alguns segundos. Os certificados são colocados em: /etc/letsencrypt/live
Em seguida você deve escolher se quer habilitar o redirecionamento http -> https, ou prefere manter o site também acessível sem criptografia:
Assim, as modificações serão feitas automaticamente nos arquivos correspondentes em /etc/apache2/sites available
. Em seguida, as configurações serão aplicadas ao apache.
Caso queira reverter essas configurações, execute:
$ sudo ./letsencrypt-auto --rollback
O certificado tem validade de 3 meses. Portanto, o certificado deve ser renovado antes disso. Para tal, é só executar novamente o mesmo script e seguir os passos. Em determinado ponto, você verá a seguinte tela:
É só aceitar e o certificado será renovado por mais 3 meses.
É possível automatizar essa renovação utilizando um arquivo de configuração do let's encrypt e o crontab, porém, a intenção do projeto é de oferecer uma ferramenta oficial que faça isso, portanto, por enquanto, é mais interessante esperar pra ver o que eles oferecerão.
Aqui você pode conferir o teste de segurança no domínio cefala.org: https://www.ssllabs.com/ssltest/analyze.html?d=www.cefala.org
Post-scriptum
(por Rafael Laboissière, em 2022-07-16)
A técnica descrita acima é obsoleta e devemos usar agora o certbot.