La seguridad es algo que trae de cabeza a la vasta mayoría de los usuarios sin importar el medio. Para que no pierdas visitas, te enseño cómo configurar un ssl gratis en tu web y encima que se renueve solo.
Porque lo normal es que dependiendo del tipo de licencia te toque pagar unos dinerales importantes (por ejemplo los certificados que tienen los bancos). Pero en sí, lo que a nosotros nos interesa no es certificar la propiedad del dominio o el tratamiento de los datos, sino encriptar la conexión.
¿Por qué es tan importante una conexión SSL con tu web?
Por dos motivos principales. El primero es que sino no le vas a caer bien a Google, te va a dar de zurras en el posicionamiento y vas a acabar perdiendo posiciones.
La segunda (y por tanto menos importante), es porque con una certificación SSL, tus usuarios van a creer más en tu sitio, además de que evitarás que los datos que intercambias con ellos puedan caer en manos de terceros.
No, es broma, es más importante la segunda, pero seguro que hay quien piensa al revés.
Cómo instalar un certificado SSL gratis en tu web
Lo primero que vas a necesitar va a ser acceso a la consola de comandos, y por tanto al menos de forma parcial al sistema operativo. Esto incluye la capacidad de instalar paquetes. Lo conocerás comúnmente como conexión ssh, independientemente de tu servidor.
Esta guía está pensada para distros de Linux, ya bien sean basadas en Debian (Ubuntu), u otras como CentOS que es la que solía usar. El poder instalar paquetes, es porque te hará falta un paquete de instalación y renovación de los certificados SSL, que hará que el proceso sea un suspiro.
Una vez lo tengas todo (si tienes CPanel, o incluso un servidor dedicado o virtual, seguro que tienes acceso a consola), bastará con seguir unos sencillos pasos.
OJO: como siempre, vas a instalar paquetes en lo que supongo será tu servidor de producción. Pruébalo primero en una máquina clonada del mismo, no vaya a ser que te genere problemas y caída del servicio. Por supuesto hazlo bajo tu responsabilidad, y aunque debería funcionar a la primera siempre puede haber algún inconveniente (te ayudo en los comentarios).
Cómo instalar certificados letsencrypt en tu servidor web
Para que salga gratis, vamos a utilizar los certificados SSL de Let’sEncrypt, que no cobra por el servicio. Eso sí, también tiene de pago, ya que el gratuíto ofrece solo certificados que duran 3 meses. Solucionaremos luego lo de la renovación.
De momento conéctate por ssh a la consola de tu sistema, y vamos a empezar con la instalación del certbot:
sudo apt-get install python-certbot-apache
En este caso apt-get pero puedes usar el gestor de paquetes que te permita tu distribución. Una vez instalado tienes dos opciones, hacerlo por la vía fácil, es decir, que certbot se encargue de configurar tu apache:
sudo certbot --apache
O con este otro comando en su lugar prepararías el certificado para luego configurar apache a mano:
sudo certbot --apache certonly
En este caso usaremos el primero sudo certbot –apache, y simplemente elige el dominio para el que sea el certificado y acepta las condiciones.
Una vez terminado te dejará instalado el SSL para apache, y si le has dado a la opción redireccionará todo el tráfico http a https de forma automática. Ideal para prácticamente cualquier tipo de instalación.
OJO: recuerda que si redireccionas las urls a https y usas algún sistema como disqus, se consideran urls diferentes y deberías migrarlas en el sistema del tercero para que coincidan con el nuevo https.
Cómo renovar automáticamente los certificados Let’sEncrypt
Sí, bueno, precioso, ya tengo instalado un certificado gratis que dura tres meses, pero… ¿y si se te olvida renovarlo? No te preocupes, es gratis pero te lo ponen fácil para que tengas un 0% de sitio offline por culpa del certificado.
Con el método de renovación instantánea que tienen, bastará con ejecutar un simple comando para que tu servidor web revise la validez de tus certificados, y los actualice cuando sea necesario.
Esto es bueno por dos motivos, primero porque así te aseguras de que si un certificado ha sido comprometido, cambie automáticamente. El segundo es que la conexión será segura de forma contínua y no tendrás que preocuparte más por la privacidad de tus usuarios.
Certbot pone el comando renew a tu disposición para eso, pero antes vamos a hacer una prueba. Si tienes algún tipo de firewall que evita las conexiones entrantes en el puerto 442 te va a dar un error de que no puede conectar, así que asegúrate de que lo haces público. Ejecuta lo siguiente:
sudo certbot renew --dry-run
Este comando simplemente va a simular la renovación de tu certificado, y de no poder hacerlo te va a decir qué está pasando. Si ves que pasa la prueba y te pone que todo está correcto, ahora puedes poner una tarea en el cron del sistema para que revise cada hora si el certificado va a caducar. Edita la tabla cron:
sudo crontab -e
Añade una línea como la siguiente
1 * * * * certbot renew
Esto hará que el minuto 1 de cada hora, todos los días, certbot revise la validez de tu certificado y si va a caducar lo renueve. Como se puede renovar con cierta antelación, no perderás nada de tiempo online en tu servidor, lo que es simplemente perfecto.
No hace falta que le pongas más frecuencia precisamente por el mismo motivo, incluso con una vez al día sería más que suficiente, pero ya sabes…
¿Has pasado a ssl? ¿Por qué has decidido hacerlo? Comenta y comparte.