#!/bin/bash # Script zum Erneuern/Löschen und Neu-Erstellen von Caddy-Zertifikaten set -e echo "🔄 Caddy-Zertifikat-Erneuerung" echo "" echo "⚠️ WICHTIG: Dieses Script wird die Zertifikate löschen und Caddy zwingen, sie neu zu erstellen." echo "" # Prüfe ob Caddy-Container läuft if ! docker ps | grep -q hoerdle-caddy; then echo "❌ Caddy-Container läuft nicht!" echo " Starte ihn mit: docker compose -f docker-compose.caddy.yml --profile production up -d" exit 1 fi echo "📋 Verfügbare Optionen:" echo " 1) Alle Zertifikate löschen und neu erstellen (empfohlen bei Problemen)" echo " 2) Nur Zertifikat für xn--hrdle-jua.de löschen (Punycode-Domain)" echo " 3) Nur Zertifikat für hoerdle.de löschen" echo " 4) Abbrechen" echo "" read -p "Wähle eine Option (1-4): " choice case $choice in 1) echo "" echo "🗑️ Lösche ALLE Zertifikate..." docker exec hoerdle-caddy rm -rf /data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/* 2>/dev/null || true echo "✅ Alle Zertifikate gelöscht" ;; 2) echo "" echo "🗑️ Lösche Zertifikat für xn--hrdle-jua.de..." docker exec hoerdle-caddy find /data/caddy/certificates -name "*xn--hrdle-jua.de*" -delete 2>/dev/null || true docker exec hoerdle-caddy find /data/caddy/certificates -name "*xn--*" -delete 2>/dev/null || true echo "✅ Zertifikat für Punycode-Domain gelöscht" ;; 3) echo "" echo "🗑️ Lösche Zertifikat für hoerdle.de..." docker exec hoerdle-caddy find /data/caddy/certificates -name "*hoerdle.de*" ! -name "*xn--*" -delete 2>/dev/null || true echo "✅ Zertifikat für hoerdle.de gelöscht" ;; 4) echo "❌ Abgebrochen." exit 0 ;; *) echo "❌ Ungültige Option. Abgebrochen." exit 1 ;; esac echo "" echo "🔄 Starte Caddy-Container neu, um Zertifikate neu zu erstellen..." docker compose -f docker-compose.caddy.yml --profile production restart caddy echo "" echo "⏳ Warte 5 Sekunden, damit Caddy startet..." sleep 5 echo "" echo "📋 Prüfe Caddy-Logs auf Zertifikats-Erstellung:" echo "" docker logs hoerdle-caddy --tail=30 2>&1 | grep -i -E "(certificate|tls|acme|challenge|error|success)" || echo " (Keine relevanten Log-Einträge in den letzten 30 Zeilen)" echo "" echo "✅ Container wurde neu gestartet." echo "" echo "💡 Nächste Schritte:" echo " 1. Warte 1-2 Minuten, damit Caddy die Zertifikate erstellt" echo " 2. Prüfe die Logs: docker logs hoerdle-caddy -f" echo " 3. Prüfe den Status: ./scripts/check-caddy-certificates.sh" echo " 4. Teste die Domain: curl -I https://xn--hrdle-jua.de" echo "" echo "⚠️ Falls das Zertifikat nicht erstellt wird:" echo " - Prüfe DNS-Einträge: Beide Domains müssen auf die Server-IP zeigen" echo " - Prüfe Port 80: Muss von außen erreichbar sein (für HTTP-01 Challenge)" echo " - Prüfe Firewall: Ports 80 und 443 müssen offen sein" echo " - Prüfe Caddy-Logs: docker logs hoerdle-caddy"