Files
Seguridad-Informatica/EXPERIENCIA/Servidores/Proyecto Web RP4.md
2025-11-28 15:55:46 +01:00

3.2 KiB
Executable File

🌐 Proyecto Web en Raspberry Pi 4 con HTTPS y Apache2

Configuración completa de servidor web autohospedado en una Raspberry Pi 4 usando Apache2, múltiples webs con HTTPS y dominio dinámico mediante DuckDNS.


🌟 Requisitos

  • Raspberry Pi 4 con Raspberry Pi OS Lite

  • Acceso root o sudo habilitado

  • Acceso a tu router para redireccionar puertos

  • Cuenta en https://www.duckdns.org


Paso 1: Actualizar la Raspberry Pi

sudo apt update && sudo apt upgrade -y

Paso 2: Instalar Apache2 y herramientas necesarias

sudo apt install apache2 certbot python3-certbot-apache curl git unzip -y

Paso 3: Registrar dominios en DuckDNS

  1. Ir a https://www.duckdns.org e iniciar sesión

  2. Crear los subdominios necesarios (ej: lilcarpi, blogcarpi)

  3. Apuntar ambos a tu IP pública


Paso 4: Crear script de actualización de IP dinámica

sudo mkdir -p /root/duckdns
sudo nano /root/duckdns/duck.sh

Contenido del script:

#!/bin/bash
TOKEN="TU_TOKEN_DUCKDNS"
DOMAINS="lilcarpi,blogcarpi"
URL="https://www.duckdns.org/update?domains=$DOMAINS&token=$TOKEN&ip="
echo url="$URL" | curl -k -o /root/duckdns/duck.log -K -

Dar permisos y crear cronjob:

chmod +x /root/duckdns/duck.sh
(crontab -l ; echo "*/5 * * * * /root/duckdns/duck.sh") | crontab -

Paso 5: Configurar Apache2 con múltiples webs

Crear carpetas para los sitios:

sudo mkdir -p /var/www/lilcarpi
sudo mkdir -p /var/www/blogcarpi

Dar permisos:

sudo chown -R $USER:$USER /var/www/lilcarpi
sudo chown -R $USER:$USER /var/www/blogcarpi

Crear archivos de configuración para cada virtualhost:

sudo nano /etc/apache2/sites-available/lilcarpi.conf
<VirtualHost *:80>
    ServerName lilcarpi.duckdns.org
    DocumentRoot /var/www/lilcarpi
</VirtualHost>
sudo nano /etc/apache2/sites-available/blogcarpi.conf
<VirtualHost *:80>
    ServerName blogcarpi.duckdns.org
    DocumentRoot /var/www/blogcarpi
</VirtualHost>

Activar los sitios y reiniciar Apache:

sudo a2ensite lilcarpi.conf
sudo a2ensite blogcarpi.conf
sudo systemctl reload apache2

Paso 6: Instalar HTTPS con Let's Encrypt

sudo certbot --apache -d lilcarpi.duckdns.org -d blogcarpi.duckdns.org

Si quieres forzar redirección HTTP → HTTPS, acepta cuando te lo pida.


Paso 7: Comprobación


🚫 Paso Opcional: Configurar dominio personalizado (como carpi.inc)

DuckDNS no permite usar dominios personalizados directamente. Pero podrías:

  1. Comprar un dominio (como carpi.inc)

  2. En su DNS, apuntar un CNAME a lilcarpi.duckdns.org

  3. Usar DNS-01 para Let's Encrypt, con un hook


🌐 Notas finales

  • Todo esto se ejecuta directamente en la Raspberry Pi 4

  • Puedes expandirlo con más virtualhosts

  • Si quieres rendimiento, activa caché o CDN local (como Cloudflare DNS + proxy inverso)


🌟 Powered by Tars & Carpi

}