Configuración de Cockpit vía HTTPS en VPS
Esta guía describe los pasos necesarios para configurar Cockpit utilizando HTTPS en un servidor VPS. Cockpit es una interfaz web para la administración de sistemas Linux, en esta configuración se utiliza Nginx como proxy inverso para manejar las conexiones HTTPS.
Se recomienda utilizar Debian 13 si está disponible, o en su defecto Debian 12 o Ubuntu 24.04 LTS, por su estabilidad y soporte extendido.
sudo apt update && sudo apt upgrade -y
El primer paso es la configuración DNS. Debe crear registros para un subdominio, por ejemplo cockpit.dominio.com, que apunten a la IP de su VPS. Configure un registro A para IPv4 y un registro AAAA para IPv6, con un TTL de 300 segundos para agilidad en los cambios. Un ejemplo de configuración sería:
cockpit.dominio.com. 300 IN A 192.0.2.1
cockpit.dominio.com. 300 IN AAAA 2001:db8::1
A continuación, configure Nginx como proxy inverso. Cree un archivo de configuración en /etc/nginx/conf.d/cockpit.dominio.com.conf con el siguiente contenido. Este bloque de servidor escucha en el puerto 80 y redirige el tráfico al servicio Cockpit interno.
server {
listen 80;
listen [::]:80;
server_name cockpit.dominio.com www.cockpit.dominio.com;
location / {
proxy_pass https://127.0.0.1:9090;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_buffering off;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
gzip off;
}
}
El siguiente paso es obtener un certificado SSL de Let's Encrypt para habilitar HTTPS. Instale el cliente Certbot y el plugin para Nginx con el comando:
sudo apt install certbot python3-certbot-nginx -y.
Luego, ejecute Certbot para obtener e instalar el certificado automáticamente:
sudo certbot --nginx -d cockpit.dominio.com -d www.cockpit.dominio.com
Siga las instrucciones en pantalla, proporcione un email para notificaciones y acepte los términos. Es recomendable configurar la redirección automática de HTTP a HTTPS.
Después, verifique la configuración de Nginx con
sudo nginx -t y
recargue el servicio con
sudo nginx -s reload.
Para asegurar el servidor, configure el firewall UFW para permitir solo los puertos necesarios. Instale UFW si no está presente:
sudo apt install ufw -y
Luego, habilite el acceso SSH y los puertos web:
sudo ufw allow ssh
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Finalmente, active el firewall y verifique las reglas:
sudo ufw enable
sudo ufw status verbos
Ahora proceda con la instalación de Cockpit. Para Debian 12 o 13, se recomienda instalarlo desde los backports. Puede hacerlo con el comando:
sudo apt install -t ${VERSION_CODENAME}-backports cockpit -y. Active el servicio Cockpit:
sudo systemctl enable --now cockpit.socket.
Para una integración segura con el proxy inverso, es necesario ajustar la configuración de Cockpit. Edite el archivo /etc/cockpit/cockpit.conf y asegúrese de que incluya las siguientes líneas para especificar los orígenes permitidos y el protocolo:
[WebService] Origins = https://cockpit.dominio.com wss://cockpit.dominio.com ProtocolHeader = X-Forwarded-Proto LoginTitle = "Servidor Producción | Empresa" [Session] Banner = /etc/issue.net IdleTimeout = 900
Después de guardar los cambios, reinicie el servicio Cockpit con sudo systemctl restart cockpit.socket.
Para verificar la instalación, abra un navegador web y acceda a https://cockpit.dominio.com. Compruebe que el certificado SSL sea válido y que la conexión sea segura. Debería ver la página de inicio de sesión de Cockpit, donde puede usar sus credenciales de sistema para acceder.
En cuanto al mantenimiento, Let's Encrypt renovará automáticamente los certificados. Puede monitorizar el estado de Cockpit con el comando
journalctl -u cockpit.service
Esta configuración sirve como base sólida para una interfaz administrativa segura. Para aplicaciones más complejas, podrían considerarse arquitecturas adicionales.
Documentación de referencia:
- Nginx: https://nginx.org/en/docs/
- Let's Encrypt: https://letsencrypt.org/docs/
- Cockpit Project: https://cockpit-project.org/
Quadro Soluciones Tecnológicas
Soporte técnico: soporte@quadrosoluciones.mx