Let’s Encrypt o como tener tu página HTTPS tras 5 instrucciones en la línea de comandos

Cuando Tim Berners-Lee creó el World Wide Web en 1990 lo hizo pensando en una enorme biblioteca de documentos entrelazados. Por eso cuando diseñó su protocolo de comunicación (HyperText Transfer Protocol o HTTP) no se preocupó por la seguridad. Toda la información que HTTP envía es visible para cualquiera con mínimos conocimientos sobre redes.

No fue hasta unos años después cuando Netscape desarrollo HTTPS, que añadía una capa de seguridad a HTTP.  Toda la información se envía encriptada. Ya es posible hacer la compra semanal, gestionar las cuentas del banco o compartir las fotos de nuestras vacaciones con los amigos del instituto.

Pero para que HTTPS funcione, debemos tener un certificado que garantice quien somos, solo así se puede crear una conexión segura. Y para garantizar que el certificado es cierto, los navegadores solo confían en los certificados creados por un número limitado de entidades.

Estas entidades certificadoras siguen un costoso proceso para garantizar que somos quien decimos ser y cobran sus honorarios proporcionalmente. Así, para tener una conexión segura, lo que tenemos que hacer es gastar nuestro dinero en un certificado. Hasta que llegó Let’s encrypt.

En la primavera de 2016 nació esta entidad certificadora avalada por una colección casi infinita de partners de casi todos los sectores de la industria. Rompe con la tradición en dos puntos: los certificados son gratuitos y el proceso para su creación automático.

En Atenea tech hemos creado un certificado y lo hemos puesto a funcionar en un par de horas. Nos ha sorprendido tanto la sencillez del proceso que queremos compartirlo con vosotros. Nosotros tenemos un servidor virtual con Ubuntu y Apache. Si vuestro sistema es diferente el proceso debe ser muy parecido, solo debéis buscar en la página de Let’s encrypt.

Paso 1: descargar el cliente de Let’s encrypt

Let’s encrypt usa un cliente que debemos instalar en nuestro servidor. solo hay que descargarlo, ponerlo en la carpeta correcta y darle permisos de ejecución:

$ cd /usr/local/sbin
$ sudo wget https://dl.eff.org/certbot-auto
$ sudo chmod a+x /usr/local/sbin/certbot-auto

Paso 2: crear y configurar los certificados

Ahora que ya tenemos el cliente, le pediremos que genere un certificado. El proceso es relativamente sencillo, el cliente se pondrá en contacto con el servidor de la entidad certificadora y esta le pedirá que demuestre que el dominio es suyo. Para ello, le pedira que cree una página con un contenido concreto. Si lo puede hacer, creará el certificado y se lo enviará al cliente quien configurará todos para que se utilice. Todo esto es automático, solo debemos ejecutar un comando para que suceda:

$ certbot-auto --apache -d ateneatech.com -d www.ateneatech.com

En el proceso, que tarda un instante, se nos preguntará si queremos seguir teniendo nuestra Web con HTTP junto con HTTPS o preferimos que se redireccione todo a HTTPS.

Paso 3: configurar la renovación automática

Los certificados caducan y hay que renovarlos. Por suerte, para renovar todos los certificados que tengamos en nuestro servidor solo hace falta ejecutar un comando. Si queremos, es posible configurarlo para que sea automática editando nuestro cron. Para ello ejecutaremos:

$ sudo crontab -e

y añadiremos una línea al final del archivo crontab:

30 2 * * 1 /usr/local/sbin/certbot-auto renew >> /var/log/le-renew.log

Conclusiones

Ya tenemos nuestra página bajo HTTPS, todos los datos se envían encriptados y nuestra Web es segura.

Si necesitais más información podeis acceder a la página de Let’s encrypt
 

Contacte

T'interessen els nostres serveis?

Contacta'ns