Paso 1: Preparar tu Sistema e Instalar Apache
Comienza actualizando tu servidor y asegurándote de que Apache esté instalado y listo para los módulos WebDAV y SSL.
-
Actualiza los paquetes del sistema:
Siempre es una buena práctica empezar con un sistema actualizado.
sudo apt update
sudo apt upgrade -y
-
Instala Apache2:
Si no lo tienes ya, instala el servidor web Apache.
sudo apt install apache2 -y
-
Habilita los módulos necesarios de Apache:
Los módulos dav
, dav_fs
, ssl
y rewrite
son fundamentales para la funcionalidad WebDAV y HTTPS.
sudo a2enmod dav
sudo a2enmod dav_fs
sudo a2enmod ssl
sudo a2enmod rewrite # Necesario para la redirección HTTP a HTTPS
-
Reinicia Apache
para que los cambios en los módulos surtan efecto:
sudo systemctl restart apache2
Paso 2: Crea la Carpeta WebDAV y Configura Permisos
Ahora, crea el directorio que actuará como tu carpeta WebDAV y otorga a Apache los permisos necesarios.
-
Crea el directorio WebDAV:
Aunque puedes elegir otra ubicación, /var/www/webdav
es una opción común y recomendada.
sudo mkdir /var/www/webdav
-
Establece el propietario y los permisos:
Asigna la propiedad de la carpeta al usuario y grupo de Apache (www-data
) para permitir la lectura y escritura.
sudo chown -R www-data:www-data /var/www/webdav
sudo chmod -R 755 /var/www/webdav
chmod 755
asegura que el propietario (www-data
) tenga permisos completos, mientras que otros pueden leer y ejecutar.
Paso 3: Configura la Autenticación de Usuario para WebDAV
Para proteger tu carpeta WebDAV, establecerás una autenticación de usuario básica.
-
Crea el archivo de contraseñas:
Utiliza htpasswd
para generar un archivo con nombres de usuario y contraseñas cifradas. La opción -c
crea el archivo si no existe. Asegúrate de reemplazar tu_usuario
por el nombre de usuario que prefieras.
sudo htpasswd -c /etc/apache2/webdav.passwd tu_usuario
Se te pedirá que introduzcas y confirmes la contraseña para tu_usuario
.
-
Añade usuarios adicionales (opcional):
Si necesitas añadir más usuarios en el futuro, no uses -c
, ya que esto sobrescribiría el archivo existente. Simplemente omítelo:
sudo htpasswd /etc/apache2/webdav.passwd otro_usuario
Paso 4: Configura el Virtual Host de Apache para WebDAV
Aquí definirás cómo Apache servirá tu carpeta WebDAV, incluyendo la crucial configuración para HTTPS.
-
Crea el archivo de configuración del Virtual Host:
Usaremos nano
para crear un nuevo archivo de configuración en sites-available
. Recuerda reemplazar webdav.tudominio.com
con tu nombre de dominio real.
sudo nano /etc/apache2/sites-available/webdav.conf
-
Pega la siguiente configuración:
Este código configurará un Virtual Host para HTTP que redireccionará todo el tráfico a HTTPS, y un Virtual Host para HTTPS que contendrá la configuración WebDAV.
<VirtualHost *:80>
ServerName webdav.tudominio.com # ¡Cambia esto a tu dominio!
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
# Redireccionar todo el tráfico HTTP a HTTPS para WebDAV
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:443>
ServerName webdav.tudominio.com # ¡Cambia esto a tu dominio!
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /webdav /var/www/webdav
<Location /webdav>
DAV On
AuthType Basic
AuthName "Acceso Restringido WebDAV"
AuthUserFile /etc/apache2/webdav.passwd
Require valid-user
# Opcional: Permite ciertas operaciones (GET, HEAD, OPTIONS, PROPFIND)
# sin autenticación, pero requiere autenticación para el resto.
# Si quieres que *TODAS* las operaciones requieran autenticación,
# elimina este bloque <LimitExcept>.
<LimitExcept GET HEAD OPTIONS PROPFIND>
Require valid-user
</LimitExcept>
</Location>
# --- Directivas SSL/TLS (¡Estas serán actualizadas por Certbot!) ---
# Estas líneas son marcadores de posición. Certbot las rellenará automáticamente.
# SSLEngine on
# SSLCertificateFile /etc/letsencrypt/live/webdav.tudominio.com/fullchain.pem
# SSLCertificateKeyFile /etc/letsencrypt/live/webdav.tudominio.com/privkey.pem
# Include /etc/letsencrypt/options-ssl-apache.conf
# -----------------------------------------------------------------
</VirtualHost>
Guarda y cierra el archivo (Ctrl+X
, Y
, Enter
).
-
Habilita el Virtual Host
que acabas de crear:
sudo a2ensite webdav.conf
-
Reinicia Apache
para cargar la nueva configuración del Virtual Host:
sudo systemctl restart apache2
Paso 5: Asegura tu WebDAV con HTTPS (Certbot/Let's Encrypt)
Este es el paso clave para obtener e instalar un certificado SSL/TLS gratuito para tu dominio, habilitando así HTTPS.
-
Instala Certbot para Apache:
sudo apt install certbot python3-certbot-apache -y
-
Obtén y configura el certificado SSL:
Ejecuta Certbot; te guiará a través del proceso.
sudo certbot --apache
- Se te pedirá una dirección de correo electrónico para avisos de renovación.
- Deberás aceptar los términos de servicio.
- Te preguntará si quieres compartir tu correo con la EFF (esto es opcional).
- Certbot detectará automáticamente tu dominio (
webdav.tudominio.com
) y te pedirá que lo selecciones (normalmente escribiendo el número correspondiente).
- Finalmente, te preguntará si quieres redireccionar todo el tráfico HTTP a HTTPS. Es fundamental seleccionar la opción para redireccionar (generalmente opción 2). Esto garantiza que tu WebDAV siempre utilice una conexión segura.
Si el proceso es exitoso, Certbot modificará tu archivo webdav.conf
para incluir las directivas SSLEngine
, SSLCertificateFile
, etc., y configurará la renovación automática del certificado.
Paso 6: Ajustes Finales y Verificación
Realiza una verificación rápida de tu configuración de Apache y asegúrate de que el firewall esté correctamente configurado.
-
Verifica la sintaxis de la configuración de Apache (opcional pero recomendado):
sudo apache2ctl configtest
Deberías ver Syntax OK
.
-
Reinicia Apache
una última vez para aplicar todos los cambios de Certbot:
sudo systemctl restart apache2
-
Configura el Firewall (UFW):
Si estás usando UFW (Uncomplicated Firewall), asegúrate de que los puertos 80 (HTTP) y 443 (HTTPS) estén abiertos. Certbot suele encargarse de esto, pero es buena idea verificar.
sudo ufw allow 'Apache Full'
sudo ufw enable # Si el firewall no está habilitado
sudo ufw status
Deberías ver que 'Apache Full' permite el tráfico en los puertos 80 y 443.
Paso 7: Accede a tu Carpeta WebDAV
¡Ya está! Ahora puedes acceder a tu carpeta WebDAV de forma segura.
Desde un navegador web:
Abre tu navegador y navega a https://webdav.tudominio.com/webdav
target="_blank" rel="noopener noreferrer">https://webdav.tudominio.com/webdav
. Deberías ver un mensaje solicitando usuario y contraseña. Una vez introducidos, podrás ver el contenido de tu directorio /var/www/webdav
. Asegúrate de usar https://
y no http://
.
Monta la carpeta WebDAV como una unidad de red:
Windows:
- Abre "Este equipo" o "Mi PC".
- Haz clic derecho y selecciona "Conectar a unidad de red".
- En "Carpeta", introduce
https://webdav.tudominio.com/webdav
.
- Marca la casilla "Conectar usando credenciales diferentes" y haz clic en "Finalizar".
- Introduce el nombre de usuario y la contraseña que configuraste con
htpasswd
.
macOS:
- En el Finder, ve a "Ir" > "Conectarse al servidor..." (o presiona
⌘K
).
- En el campo "Dirección del servidor", introduce
https://webdav.tudominio.com/webdav
.
- Haz clic en "Conectar".
- Introduce el nombre de usuario y la contraseña cuando se te solicite.
Linux (GNOME/KDE):
- GNOME (Nautilus): Abre el gestor de archivos, haz clic en "Otras ubicaciones" en la barra lateral, y en la parte inferior, en "Conectar al servidor", escribe
davs://webdav.tudominio.com/webdav
y haz clic en "Conectar".
- KDE (Dolphin): Abre el gestor de archivos, en la barra de direcciones escribe
webdavs://webdav.tudominio.com/webdav
y presiona Enter.