Menú
Cómo resolver la generación automática de certificados SSL en Virtualmin

Cómo resolver la generación automática de certificados SSL en Virtualmin

panel de Virtualmin

ACTUALIZACIÓN: Las nuevas versiones de Virtualmin han integrado esta solución a su panel de herramientas. Dejo esto aquí como legado, y porque puede ser útil con otros gestores y con otros servicios, que se pueden automatizar con el Cron.

Virtualmin es un gestor de servicios de hosting análogo a  cPanel. Lo he usado durante años, pero solo como chófer. Ahora resulta que administro dos VPS. Hay que ensuciarse más las manos, porque un VPS se entrega nuevecito, y hay que encenderlo y configurarlo. Ahí es donde ser chófer ayuda, pero ser mecánico, ingeniero, administrador y electricista, cuenta.

Uno de los dolores de cabeza para quienes usan Virtualmin (se me estaba pasando por alto darle las gracias a mi amigo Hugo Sandoval por su inestimable y duradera amistad, y por haberme enseñado a amaestrar Virtualmin), y estoy seguro que los usuarios de otros paneles de control también, es configurar Let's Encrypt para generar certificados SSL válidos, y lo que es más importante, que se renueven solos, sin que tenga una que estar pendiente de hacerlo.

¿Cuál es el rollo con los certificados?

En 2018, el Gran Hermano G impuso que los sitios web sean servidos a través de una conexión asegurada. El protocolo HTTP sigue existiendo, pero ahora, tu navegador te advierte que si te metes ahí, te pueden pasar cosas muy malas. Yo temo que dentro de poco, se pongan igualito que las cadenas de Whatsapp. La verdad verdadera, el que te va a hacer phishing o te va estafar, lo va a hacer por HTTP, por HTTPS, en persona, por teléfono o hasta por telegrama. Sí, todavía existen.

Tras esta imposición, se abrió todo un mercado de certificados SSL. Hay de todo y para todos. Incluso se pueden generar certificados autofirmados, que lamentablemente, son tachados de inseguros (Por razones obvias. Yo soy una rata informática, y genero mi propio certificado que dice que yo soy confiable. ¡Qué belleza!). Pero dejando de lado esta pérdida de tiempo, es posible generar certificados de seguridad válidos, instantáneos y desde el propio gestor de hosting. Eso es una ventaja.

Let's Encrypt y Virtualmin

Virtualmin (depende de a quién le compráis el VPS), trae la posibilidad de generar certificados con Let's Encrypt, autoridad certificatoria sin fines de lucro, a cargo de Internet Security Research Group, proveedora de certificados X.509 para la "Capa Asegurada de Transporte", o TLS. Estos certificados son válidos por noventa días, se emiten sin costo, y pueden ser renovados en cualquier momento.

El problema es que Let's Encrypt puede venir instalado en el Virtualmin de tu VPS, es que pueda renovar automáticamente los certificados SSL y te quiten de encima el sambenito de estar pegado del VPS, como si fuese la última vicio-serie de Netflix o HBO.

Pero existe la manera. Ooooh sííííí, existe.

Certbot

Certbot es el conejo en el sombrero. Es muy posible que venga instalada junto con Let's Encrypt en el sistema operativo de tu VPS, pero no en modo automático. Es hora de meterle mano al motor. 

Procedimiento

Lo primero, verificar estas condiciones. Si no cumplís con estas condiciones, sois libre de no seguir leyendo. Podéis irte, dale, abandoname, que si bien no te guardo rencor, espero que la voz de tu conciencia venga con doblaje en español castizo.

Ahora vamos a lo que es. Estas instrucciones son para Debian 8 Jessie, corriendo Apache, pero si no es tu caso hay instrucciones para todos aquí

Vamos al mambo:

  1. Logueate en tu VPS por SSH. Sea por una ventana de terminal, cliente SCP, como sea, pero logueate.
  2. Eliminar el paquete de Certbot instalado. El comando es 
    sudo apt-get remove certbot
    y puede ser ejecutado sin preocuparse. Si no está instalado el paquete, no pasa nada.
  3. Instalar certbot: Con esta secuencia de comandos
    wget https://dl.eff.org/certbot-auto
    sudo mv certbot-auto /usr/local/bin/certbot-auto
    sudo chown root /usr/local/bin/certbot-auto
    sudo chmod 0755 /usr/local/bin/certbot-auto

  4. Elegí cómo correr Certbot. Dos opciones:
    Modo geek normalito: Dale relajado, instalalo automáticamente con
    sudo /usr/local/bin/certbot-auto --apache
    Modo Friqui-Guerrero Jedi del código, que se corta las uñas con el sable de luz: Para vos, que te tiráis la configuración del servidor Apache a mano,
    sudo /usr/local/bin/certbot-auto certonly --apache

  5. Y ahora, MAGIA CARIBEÑA: Creáis una tarea del cron, para que se ocupe por vos de renovar cada certificado a tiempo. ¡Pare de sufrir, hermanuuuu!
    echo "0 0,12 * * * root python -c 'import random; 
    import time; time.sleep(random.random() * 3600)' && 
    /usr/local/bin/certbot-auto renew" | sudo tee -a /etc/crontab > 
    /dev/null
    Ve que todo eso va en la misma línea, sin saltos.
  6. REVISÁ: Primero, andá a ver si el sitio web te muestra el candadito. Es posible que te diga todavía que el sitio es inseguro, pero porque parte del contenido sea servido todavía por HTTP. Lo importante es que te diga que el certificado es válido, que lo otro se resuelve. Eso lo podéis averiguar desde el mismo navegador, pero te recomiendo igual que lo miréis aquí: https://www.ssllabs.com/ssltest/

Es todo. Disfrutá el tiempo libre que te acabáis de ganar.

Comentarios

No hay comentarios. Se el primero!