#!/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-Zertifikat direkt prüfen (ohne Certbot)${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-Zertifikate direkt im Volume mit einem einfachen Container echo -e "${YELLOW}🔍 Prüfe SSL-Zertifikate direkt im Volume...${NC}" # Verwende einen einfachen Alpine-Container direkt mit Docker ${SUDO}docker run --rm -v beauty-bookings_certbot-certs:/etc/letsencrypt alpine:latest 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-Dateien ===' if [ -f /etc/letsencrypt/live/$DOMAIN/fullchain.pem ]; then echo '✅ fullchain.pem gefunden' ls -la /etc/letsencrypt/live/$DOMAIN/fullchain.pem else echo '❌ fullchain.pem nicht gefunden' fi if [ -f /etc/letsencrypt/live/$DOMAIN/privkey.pem ]; then echo '✅ privkey.pem gefunden' ls -la /etc/letsencrypt/live/$DOMAIN/privkey.pem else echo '❌ privkey.pem nicht gefunden' fi echo '' echo '=== Berechtigungen ===' if [ -d /etc/letsencrypt/live/$DOMAIN ]; then stat /etc/letsencrypt/live/$DOMAIN/fullchain.pem 2>/dev/null || echo 'fullchain.pem nicht zugänglich' stat /etc/letsencrypt/live/$DOMAIN/privkey.pem 2>/dev/null || echo 'privkey.pem nicht zugänglich' fi " # Prüfe ob Zertifikate vorhanden sind echo -e "${YELLOW}🔍 Prüfe ob Zertifikate für HTTPS verfügbar sind...${NC}" CERT_EXISTS=false if ${SUDO}docker run --rm -v beauty-bookings_certbot-certs:/etc/letsencrypt alpine:latest test -f /etc/letsencrypt/live/$DOMAIN/fullchain.pem; then CERT_EXISTS=true fi if [ "$CERT_EXISTS" = true ]; then echo -e "${GREEN}✅ SSL-Zertifikate sind verfügbar!${NC}" echo -e "${YELLOW}📝 Aktiviere HTTPS-Konfiguration...${NC}" # Stelle die ursprüngliche HTTPS-Konfiguration wieder her git checkout nginx/nginx.conf sed "s/\${DOMAIN}/$DOMAIN/g" nginx/nginx.conf > nginx/nginx.conf.tmp mv nginx/nginx.conf.tmp nginx/nginx.conf # Starte Nginx neu mit HTTPS-Konfiguration echo -e "${YELLOW}🔄 Starte Nginx mit HTTPS-Konfiguration...${NC}" ${SUDO}${DOCKER_COMPOSE} -f docker-compose-prod.yml restart nginx sleep 5 echo -e "${GREEN}✅ HTTPS ist jetzt aktiviert!${NC}" echo -e "${BLUE}🌐 Deine Anwendung ist jetzt verfügbar unter:${NC}" echo -e "${GREEN} https://$DOMAIN${NC}" else echo -e "${YELLOW}⚠️ Keine SSL-Zertifikate gefunden.${NC}" echo -e "${BLUE}🌐 Deine Anwendung läuft weiterhin über HTTP:${NC}" echo -e "${GREEN} http://$DOMAIN${NC}" echo "" echo -e "${YELLOW}💡 Um HTTPS zu aktivieren:${NC}" echo " 1. Stelle sicher, dass Port 80 und 443 erreichbar sind" echo " 2. Führe manuell SSL-Zertifikatserstellung durch" echo " 3. Oder verwende ein anderes SSL-Setup-Tool" fi echo -e "${GREEN}✅ SSL-Prüfung abgeschlossen!${NC}"