Usando o Let's Encrypt

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:

Lista de nomes

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:

Redirecionar ou não?

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.

Tudo pronto

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:

Renovando o certificado

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

social