#!/bin/bash # Farben für Output RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # No Color echo -e "${BLUE}🔧 Stargirlnails Kiel - SSL-Berechtigungen prüfen${NC}" echo "==================================================" # Prüfe ob .env-Datei existiert if [ ! -f .env ]; then echo -e "${RED}❌ .env-Datei nicht gefunden!${NC}" exit 1 fi # Extrahiere DOMAIN aus .env DOMAIN=$(grep -E '^DOMAIN=' .env | cut -d '=' -f2- | tr -d '"') if [ -z "$DOMAIN" ]; then echo -e "${RED}❌ DOMAIN nicht in .env gefunden!${NC}" exit 1 fi echo -e "${GREEN}✅ Domain: $DOMAIN${NC}" # Erkenne Docker Compose-Version if command -v docker-compose >/dev/null 2>&1; then DOCKER_COMPOSE="docker-compose" elif docker compose version >/dev/null 2>&1; then DOCKER_COMPOSE="docker compose" else echo -e "${RED}❌ Docker Compose nicht gefunden!${NC}" exit 1 fi # Prüfe Docker-Berechtigungen SUDO="" if ! docker info >/dev/null 2>&1; then if command -v sudo >/dev/null 2>&1; then SUDO="sudo " echo -e "${YELLOW}⚠️ Docker benötigt Root-Rechte. Verwende 'sudo'.${NC}" else echo -e "${RED}❌ Docker läuft nicht und 'sudo' ist nicht verfügbar.${NC}" exit 1 fi fi echo -e "${GREEN}✅ Verwende: ${SUDO}${DOCKER_COMPOSE}${NC}" # Prüfe SSL-Zertifikat-Berechtigungen echo -e "${YELLOW}🔍 Prüfe SSL-Zertifikat-Berechtigungen...${NC}" # Starte Certbot-Container und prüfe Berechtigungen ${SUDO}${DOCKER_COMPOSE} -f docker-compose-prod.yml run --rm certbot sh -c " echo '=== SSL-Zertifikat-Verzeichnis-Inhalt ===' ls -la /etc/letsencrypt/live/ 2>/dev/null || echo 'Kein live-Verzeichnis gefunden' echo '' echo '=== SSL-Zertifikat für $DOMAIN ===' ls -la /etc/letsencrypt/live/$DOMAIN/ 2>/dev/null || echo 'Kein Zertifikat für $DOMAIN gefunden' echo '' echo '=== Zertifikat-Details ===' certbot certificates -d $DOMAIN 2>/dev/null || echo 'Zertifikat-Prüfung fehlgeschlagen' echo '' echo '=== Berechtigungen ===' stat /etc/letsencrypt/live/$DOMAIN/fullchain.pem 2>/dev/null || echo 'fullchain.pem nicht gefunden' stat /etc/letsencrypt/live/$DOMAIN/privkey.pem 2>/dev/null || echo 'privkey.pem nicht gefunden' " echo -e "${YELLOW}🔧 Versuche Berechtigungen zu reparieren...${NC}" # Repariere Berechtigungen für SSL-Zertifikate ${SUDO}${DOCKER_COMPOSE} -f docker-compose-prod.yml run --rm certbot sh -c " echo 'Repariere Berechtigungen...' chmod -R 755 /etc/letsencrypt/live/ 2>/dev/null || echo 'live-Verzeichnis nicht gefunden' chmod -R 755 /etc/letsencrypt/archive/ 2>/dev/null || echo 'archive-Verzeichnis nicht gefunden' chmod 644 /etc/letsencrypt/live/$DOMAIN/fullchain.pem 2>/dev/null || echo 'fullchain.pem nicht gefunden' chmod 600 /etc/letsencrypt/live/$DOMAIN/privkey.pem 2>/dev/null || echo 'privkey.pem nicht gefunden' echo 'Berechtigungen repariert!' " echo -e "${GREEN}✅ SSL-Berechtigungen-Prüfung abgeschlossen!${NC}"