#!/bin/bash
# =============================================================
# ACTIVATION HTTPS — Let's Encrypt via Certbot
# À exécuter UNE FOIS, après que le DNS pointe vers le VPS
# Prérequis : le domaine doit résoudre vers l'IP du VPS
# Usage : sudo bash 03-activate-https.sh amendes.ligue-martinique.fff.fr
# =============================================================

set -e
GREEN='\033[0;32m'; RED='\033[0;31m'; NC='\033[0m'
log() { echo -e "${GREEN}[✓]${NC} $1"; }
err() { echo -e "${RED}[✗]${NC} $1"; exit 1; }

DOMAIN="${1:-amendes.ligue-martinique.fff.fr}"
EMAIL="admin@ligue-martinique.fff.fr"    # ← Email pour alertes expiration certificat
APP_DIR="/var/www/amendes-football"

echo ""
echo "========================================================"
echo "  Activation HTTPS pour : $DOMAIN"
echo "========================================================"

# Vérification DNS
log "Vérification que $DOMAIN pointe vers ce serveur..."
SERVER_IP=$(curl -s ifconfig.me)
DOMAIN_IP=$(dig +short "$DOMAIN" | tail -1)
if [ "$SERVER_IP" != "$DOMAIN_IP" ]; then
    err "Le domaine $DOMAIN ($DOMAIN_IP) ne pointe pas vers ce serveur ($SERVER_IP). Configurez le DNS d'abord."
fi

# Obtention du certificat
log "Obtention du certificat Let's Encrypt..."
certbot --nginx \
    -d "$DOMAIN" \
    --email "$EMAIL" \
    --agree-tos \
    --non-interactive \
    --redirect

# Mise à jour config Nginx pour HSTS et sécurité SSL
log "Renforcement de la configuration SSL..."
cat >> /etc/nginx/sites-available/amendes-football << NGINX_SSL

# Sécurité SSL additionnelle
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
add_header X-Content-Type-Options nosniff always;
add_header X-Frame-Options DENY always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
NGINX_SSL

nginx -t && systemctl reload nginx

# Renouvellement automatique
log "Test du renouvellement automatique..."
certbot renew --dry-run

log "HTTPS activé avec succès !"
echo ""
echo "  URL de l'application : https://$DOMAIN"
echo "  Certificat valide : 90 jours (renouvellement auto)"
echo ""
echo "  ⚠️  N'oubliez pas de configurer le webhook Stripe :"
echo "  URL webhook : https://$DOMAIN/stripe/webhook"
echo "  Événements  : payment_intent.succeeded, payment_intent.payment_failed"
