El Rincón del Tío Nuke

Open web, software libre, privacidad y más

Cifra todos tus sitios con Let’s Encrypt de forma sencilla, rápida y gratuita

Que la comunicación entre los usuarios y los sitios web viaje de forma segura, cifrada y no pueda ser interceptada por terceros debería ser algo obligatorio para todos los sitios.

Hasta hace muy poco el proceso para que los dueños de una página web para obtuvieran un certificado para cifrar sus webs (el famoso https) era un proceso, lento tedioso y en muchas ocasiones caro.

letsencrypt-logo-horizontal

Hace unos meses se lanzó el proyecto Let’s Encrypt, el cuál Mozilla fue uno de los propulsores, cuyo objetivo es proporcionar a todo el mundo certificados para cifrar nuestros sitios web de forma gratuita y automática.

Si os fijáis este mismo blog usa ya https para todas las páginas, pero ¿cómo lo podéis hacer en vuestras webs?

Actualización (4/7/2016): El script de gestión de certificados ahora se llama certbot y es mantenido por la EFF, toda la documentación actualizada en su web. Las instrucciones a continuación están obsoletas.

La documentación de Let’s Encrypt es muy clara, pero voy a resumir.

En vuestro servidor como root bajamos letsencrypt si vuestro sistema no lo tiene aún y lo ejecutamos para que instale dependencias:

$ git clone https://github.com/letsencrypt/letsencrypt
$ cd letsencrypt
$ ./letsencrypt-auto --help

Vamos a generar nuestro certificado, podemos generarlo e instalarlo de forma automática si usamos apache como dice la documentación, pero en mi caso como uso Nginx y el plugin aún no va fino he optado por hacerlo a mano, decirle que simplemente me genere nuevos certificados y que use un archivo en la raíz de la web para verificar que soy el propietario:

$ ./letsencrypt-auto certonly --webroot -w /var/www/nukeador.com/ -d nukeador.com -d www.nukeador.com

Y ya está, tendremos nuestro certificado para el dominio nukeador.com y www.nukeador.com en la carpeta /etc/letsencrypt/live/nukeador.com/ que podremos enlazar en la configuración de nuestro servidor web (si usáramos el plugin de apache esto lo haría él solo).

Posteriormente debemos programar una tarea diaria en el cron para que intente renovar el certificado si ha caducado (por defecto duran 3 meses) y recargar el servidor web para que lo tome. Simplemente lo puse en el cron como @daily /ruta/al/script

/root/letsencrypt/letsencrypt-auto certonly --keep-until-expiring --webroot -w /var/www/nukeador.com/ -d nukeador.com -d www.nukeador.com
service nginx reload

Como veis es un proceso que cuesta 5 minutos y que nos tendremos que olvidar para siempre de renovaciones, pagos y dolores de cabeza.

¡Cifremos todas las web para asegurarnos que nuestra información y la de nuestros visitantes viaja segura!