# Plantilla para activar HTTPS + HSTS en un despliegue real (con dominio propio).
#
# Requisitos previos que este servidor de pruebas (IP privada 192.168.0.218,
# sin dominio) NO tiene y por eso este archivo no está activo:
#   1. Un dominio público (ej. facturacion.miempresa.com) apuntando por DNS
#      a la IP pública del servidor del cliente.
#   2. Un certificado TLS para ese dominio. La forma mas simple y gratuita:
#        sudo apt install certbot python3-certbot-apache
#        sudo certbot --apache -d facturacion.miempresa.com
#      Certbot reescribe este vhost automáticamente y agrega renovación
#      automática (systemd timer), no hace falta gestionar el certificado
#      a mano.
#
# Pasos para activar esto en un cliente real:
#   1. Reemplazar TU-DOMINIO-AQUI por el dominio real en ambos VirtualHost.
#   2. Copiar este archivo a /etc/apache2/sites-available/facturacion-ssl.conf
#   3. sudo a2enmod ssl headers
#   4. sudo certbot --apache -d TU-DOMINIO-AQUI   (certbot completa las
#      lineas SSLCertificateFile/SSLCertificateKeyFile automaticamente)
#   5. sudo a2ensite facturacion-ssl.conf && sudo systemctl reload apache2
#   6. Verificar que TODO el sitio funciona bien sobre https:// antes de
#      confiar en el redirect (probar login, facturación, PDF, Excel).
#   7. Recién ENTONCES descomentar la línea de Strict-Transport-Security
#      de abajo. HSTS le dice al navegador "nunca vuelvas a intentar por
#      HTTP", así que si algo quedó roto en HTTPS, HSTS puede dejar al
#      cliente sin acceso hasta que expire (hasta 1 año con esta config).
#      Por eso conviene probar primero SIN el header, y agregarlo después
#      de confirmar que todo funciona.

<VirtualHost *:80>
    ServerName TU-DOMINIO-AQUI
    # Redirige todo el trafico HTTP a HTTPS.
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
</VirtualHost>

<VirtualHost *:443>
    ServerName TU-DOMINIO-AQUI
    DocumentRoot /var/www/html/facturacion/public

    SSLEngine on
    # Certbot completa estas dos lineas automaticamente:
    # SSLCertificateFile /etc/letsencrypt/live/TU-DOMINIO-AQUI/fullchain.pem
    # SSLCertificateKeyFile /etc/letsencrypt/live/TU-DOMINIO-AQUI/privkey.pem

    <Directory /var/www/html/facturacion/public>
        Options -Indexes -MultiViews +FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    <Directory /var/www/html/facturacion/storage/app/public>
        Options -Indexes -ExecCGI
        AllowOverride All
        Require all granted
    </Directory>

    # Descomentar SOLO despues de confirmar que todo el sitio anda bien por HTTPS:
    # Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"

    ErrorLog ${APACHE_LOG_DIR}/facturacion_error.log
    CustomLog ${APACHE_LOG_DIR}/facturacion_access.log combined
</VirtualHost>
