Guía para Configurar WSL con Ubuntu, Nginx y Certbot¶
Esta guía te explica paso a paso cómo instalar y configurar Windows Subsystem for Linux (WSL) con Ubuntu, configurar el servidor web Nginx, securizarlo con certificados SSL usando Certbot, realizar un respaldo de la distribución y clonar una distribución de Ubuntu.
Requisitos Previos¶
- Windows 10 (versión 2004 o posterior) o Windows 11
- Acceso de administrador en tu máquina Windows
- Conexión a Internet
- Familiaridad básica con comandos de terminal
Paso 1: Habilitar e Instalar WSL con Ubuntu¶
-
Habilitar WSL:
Abre PowerShell como administrador y ejecuta:wsl --install
Este comando habilita WSL e instala Ubuntu (distribución predeterminada) si no está instalado. Reinicia tu computadora si se te solicita.
-
Establecer WSL 2 como Predeterminado (recomendado para mejor rendimiento):
wsl --set-default-version 2
-
Instalar Ubuntu:
Opción 1: Usar la Microsoft Store¶
Abre la Microsoft Store, busca "Ubuntu" (por ejemplo, Ubuntu 20.04 LTS o 22.04 LTS) e instálalo.
Opción 2: Instalar Ubuntu sin la Microsoft Store¶
Si prefieres no usar la Microsoft Store, puedes descargar e instalar Ubuntu manualmente:
-
Descargar el archivo de distribución:
Visita la página oficial de Ubuntu o el repositorio de Canonical para descargar la imagen de WSL (por ejemplo, Ubuntu 22.04). Alternativamente, usa el siguiente comando en PowerShell para descargar una distribución:Invoke-WebRequest -Uri https://aka.ms/wslubuntu2204 -OutFile Ubuntu2204.appx -UseBasicParsing
-
Instalar la distribución:
Cambia el nombre del archivo.appx
a.zip
, extráelo y ejecuta el archivoubuntu2204.exe
(o similar) para instalar. Sigue las instrucciones en pantalla para configurar la distribución.Rename-Item Ubuntu2204.appx Ubuntu2204.zip Expand-Archive Ubuntu2204.zip cd Ubuntu2204 .\ubuntu2204.exe
-
Registrar la distribución en WSL:
Una vez instalado, registra la distribución:
Ejemplo:wsl --import Ubuntu-22.04 <ruta_donde_deseas_instalar> <ruta_al_directorio_extraído>
wsl --import Ubuntu-22.04 C:\WSL\Ubuntu-22.04 C:\Users\<TuUsuario>\Downloads\Ubuntu2204
-
Descargar el archivo de distribución:
-
Configurar Ubuntu:
Inicia Ubuntu desde el menú de Inicio o ejecutandowsl -d Ubuntu-22.04
en PowerShell. Se te pedirá crear un nombre de usuario y contraseña UNIX. Completa la configuración. -
Actualizar Ubuntu:
En la terminal de Ubuntu, ejecuta:sudo apt update && sudo apt upgrade -y
Paso 2: Instalar y Configurar Nginx¶
-
Instalar Nginx:
En la terminal de Ubuntu, instala Nginx:sudo apt install nginx -y
-
Iniciar Nginx:
Inicia el servicio de Nginx y habilítalo para que se ejecute al iniciar:sudo systemctl start nginx sudo systemctl enable nginx
-
Verificar que Nginx esté funcionando:
Comprueba el estado de Nginx:sudo systemctl status nginx
Deberías ver un estado "active (running)".
-
Probar Nginx en el Navegador:
En tu navegador de Windows, navega ahttp://localhost
. Deberías ver la página de bienvenida de Nginx. Si no, verifica que WSL esté redirigiendo los puertos correctamente (ver Solución de Problemas). -
Configurar Nginx (Opcional):
Crea un archivo de configuración básico para tu sitio. Edita la configuración predeterminada:sudo nano /etc/nginx/sites-available/default
Ejemplo de configuración:
server { listen 80; server_name example.com www.example.com; root /var/www/html; index index.html index.htm; location / { try_files $uri $uri/ /index.html; } }
Guarda y sal (
Ctrl+O
,Enter
,Ctrl+X
). -
Probar y Recargar Nginx:
sudo nginx -t sudo systemctl reload nginx
Paso 3: Instalar y Configurar Certbot para SSL¶
-
Instalar Certbot:
Instala Certbot y el complemento para Nginx:sudo apt install certbot python3-certbot-nginx -y
-
Obtener Certificado SSL:
Ejecuta Certbot para configurar automáticamente SSL para tu dominio (reemplazaexample.com
con tu dominio real):sudo certbot --nginx -d example.com -d www.example.com
Sigue las instrucciones:
- Proporciona un correo electrónico para notificaciones de renovación.
- Acepta los términos de servicio.
- Elige si deseas redirigir el tráfico HTTP a HTTPS (recomendado: selecciona redirigir).
-
Verificar Configuración SSL:
Certbot modifica tu configuración de Nginx para usar el certificado SSL. Pruébalo visitandohttps://example.com
en tu navegador. -
Renovación Automática del Certificado:
Certbot configura una tarea cron para renovaciones automáticas. Prueba el proceso de renovación:sudo certbot renew --dry-run
Esto asegura que los certificados se renueven automáticamente cada 90 días.
Paso 4: Crear un Sitio Web de Prueba¶
-
Crear un Archivo HTML de Ejemplo:
sudo nano /var/www/html/index.html
Agrega:
<!DOCTYPE html> <html> <head> <title>Bienvenido a Nginx en WSL</title> </head> <body> <h1>¡Hola desde Nginx en WSL con SSL!</h1> </body> </html>
Guarda y sal.
-
Establecer Permisos:
Asegúrate de que Nginx pueda acceder a los archivos:sudo chown -R www-data:www-data /var/www/html sudo chmod -R 755 /var/www/html
-
Recargar Nginx:
sudo systemctl reload nginx
Paso 5: Realizar un Respaldo y Clonar la Distribución de Ubuntu¶
-
Realizar un Respaldo de la Distribución de Ubuntu:
-
Exportar la distribución actual:
En PowerShell, exporta la distribución de Ubuntu a un archivo.tar
:
Esto crea un archivo comprimido con el estado actual de la distribución, incluyendo todos los archivos, configuraciones y paquetes instalados (por ejemplo, Nginx y Certbot).wsl --export Ubuntu-22.04 C:\WSL\Backups\Ubuntu-22.04-backup-$(Get-Date -Format "yyyyMMdd").tar
-
Verificar el respaldo:
Asegúrate de que el archivo.tar
se creó correctamente en la ruta especificada (por ejemplo,C:\WSL\Backups\
).
-
Exportar la distribución actual:
-
Clonar la Distribución de Ubuntu:
-
Crear una nueva distribución clonada:
Importa el respaldo como una nueva distribución con un nombre diferente:
Reemplazawsl --import Ubuntu-22.04-Clone C:\WSL\Ubuntu-22.04-Clone C:\WSL\Backups\Ubuntu-22.04-backup-<fecha>.tar
<fecha>
con la fecha correspondiente del archivo de respaldo. -
Verificar distribuciones:
Lista las distribuciones instaladas para confirmar que el clon está registrado:
Deberías ver tantowsl --list --all
Ubuntu-22.04
comoUbuntu-22.04-Clone
. -
Iniciar la distribución clonada:
Inicia la distribución clonada para verificar que funciona:wsl -d Ubuntu-22.04-Clone
-
Probar Nginx en la distribución clonada:
En la terminal de la distribución clonada, verifica que Nginx esté funcionando:
Si está activo, prueba en el navegador visitandosudo systemctl status nginx
http://localhost
.
-
Crear una nueva distribución clonada:
-
Recomendaciones para Respaldos:
- Realiza respaldos regularmente, especialmente antes de hacer cambios importantes en la configuración.
- Almacena los archivos
.tar
en una ubicación segura, como un disco externo o una nube. - Para restaurar un respaldo, usa el comando
wsl --import
con un nuevo nombre de distribución si deseas conservar la original.
Solución de Problemas¶
-
Nginx no es accesible desde el navegador:
- Verifica que Nginx esté corriendo:
sudo systemctl status nginx
. - Comprueba si el puerto 80 está abierto:
sudo netstat -tuln | grep 80
. - Si usas WSL 2, los puertos no se redirigen automáticamente. Ejecuta esto en PowerShell para redirigir puertos:
netsh interface portproxy add v4tov4 listenport=80 listenaddress=0.0.0.0 connectport=80 connectaddress=127.0.0.1
- Asegúrate de que el Firewall de Windows permita el tráfico en los puertos 80 y 443.
- Verifica que Nginx esté corriendo:
-
Errores de dominio con Certbot:
- Verifica que tu dominio apunte a la dirección IP de tu servidor.
- Asegúrate de que los puertos 80 y 443 estén abiertos y accesibles.
-
Problemas de red con WSL:
- Reinicia WSL:
wsl --shutdown
en PowerShell, luego reinicia Ubuntu. - Actualiza WSL:
wsl --update
en PowerShell.
- Reinicia WSL:
-
Problemas con el respaldo o clonación:
- Asegúrate de tener suficiente espacio en disco para el archivo
.tar
. - Verifica que la ruta de destino para
--import
exista y tenga permisos adecuados. - Si la distribución clonada no inicia, verifica que el archivo
.tar
no esté corrupto ejecutando:wsl --import Ubuntu-22.04-Test C:\WSL\Test C:\WSL\Backups\Ubuntu-22.04-backup-<fecha>.tar
- Asegúrate de tener suficiente espacio en disco para el archivo
Notas Adicionales¶
-
Acceso a Archivos de WSL:
Los archivos de WSL están en\\wsl$\Ubuntu-22.04
(o similar) desde el Explorador de Archivos de Windows. -
Detener Nginx:
Para detener Nginx:sudo systemctl stop nginx
. -
Desinstalación:
Para eliminar Nginx y Certbot:sudo apt remove --purge nginx certbot python3-certbot-nginx -y sudo apt autoremove -y
-
Desinstalar Ubuntu sin Microsoft Store:
Elimina la distribución instalada manualmente:wsl --unregister Ubuntu-22.04
-
Desinstalar una distribución clonada:
Elimina la distribución clonada:wsl --unregister Ubuntu-22.04-Clone
-
Copias de Seguridad:
Haz copias de seguridad regulares de la configuración de Nginx (/etc/nginx/
), los archivos del sitio web (/var/www/html/
) y la distribución completa de WSL como se describió en el Paso 5.
Actualizado por Anibal Pendas Amador hace 4 días · 1 revisiones