Tu web con HTTPS y Let`s Encrypt (VestaCP)

Recientemente la Fundación Linux impulsó el proyecto Let’s Encrypt que hoy nos permite disfrutar de una entidad certificadora con certificados SSL abiertos, libres, gratuitos y automáticos. Esto es una maravilla para los que desarrollamos webs para una PYME, ya que se reduce el coste de alquilar un certificado en unos 85 euros al año.

Y era algo necesario: el protocolo SSL (https) añade a la una capa de seguridad y privacidad de la que ya no se puede prescindir, sobre todo si nuestras webs manejan datos personales o transacciones económicas. Incluso Google comienza a premiar el SEO de algunas webs que lo implementan y seguramente en poco tiempo cualquier web lo llevará de serie.

De momento, os voy a explicar cómo instalar uno de estos certificados en una web gestionada a través de un panel VestaCP, que es el que mucha gente usa para mantener una VPS personal. Esta instalación deberás realizarla para cada uno de los dominios en los que quieras instalar un certificado, si bien tengo que avisar de antemano que algunos CMS exigen una reconfiguración antes de hacerlo, de lo contrario podrías encontrarte con que tu web ha quedado inaccesible.

Instalación de un certificado en un panel Vesta CP (en modo root)

Primeramente iremos a esta carpeta:

cd /usr/local

...e instalaremos 2 herramientas: el cliente de "Let's Encrypt" y el plugin para utilizarlo con VestaCP y

git clone https://github.com/certbot/certbot.git
git clone https://github.com/letsencrypt/letsencrypt.git
git clone https://github.com/interbrite/letsencrypt-vesta.git

Ahora crearemos esta carpeta que se utilizará para guardar una serie de ficheros necesarios para la verificación del dominio:

mkdir -p /etc/letsencrypt/webroot

Para acceder más fácilmente a estas aplicaciones que hemos instalado, crearemos los siguientes enlaces simbólicos:

ln -s /usr/local/certbot/certbot-auto /usr/local/bin/certbot-auto
ln -s /usr/local/letsencrypt-vesta/letsencrypt-vesta /usr/local/bin/letsencrypt-vesta

Configuración del servidor web

  • Configuración de Apache:
ln -s /usr/local/letsencrypt-vesta/letsencrypt.conf /etc/httpd/conf.d/letsencrypt.conf
ln -s /usr/local/letsencrypt-vesta/letsencrypt.conf /etc/apache2/conf.d/letsencrypt.conf

... y reiniciamos Apache.

  • Configuración de Nginx:

Añadir esto al Virtual Host:

location /.well-known/acme-challenge {
    default_type text/plain;
    root /etc/letsencrypt/webroot;
}

y ahora haz que esta nueva configuración se aplique a ese dominio:

/usr/local/vesta/bin/v-rebuild-web-domains USERNAME

... y por último, reinicia Nginx.

Una vez instalado, creamos nuestro primer certificado

Verás lo sencillo que es crear un certificado para tu dominio:

letsencrypt-vesta TUUSUARIO DOMINIO

La primera vez que ejecutas esto será un poco más lento, ya que es posible que se ponga a instalar dependencias que faltan en tu sistema.

¿Tengo que renovar este certificado?

Si, es lo deseable. Es posible configurar tu VPS para que renueve este certificado cada 60 días, que es el tiempo que recomendaría. Tan sólo hay que escribir lo siguiente:

letsencrypt-vesta -a 60 TU_USUARIO TU_DOMINIO