#!/bin/bash # Quick-Check für Punycode-Domain DNS und Zertifikat set -e echo "🔍 Quick-Check für hördle.de (xn--hrdle-jua.de)" echo "" # Prüfe DNS echo "1️⃣ DNS-Auflösung:" echo "" echo " hoerdle.de:" HOERDLE_IP=$(dig +short hoerdle.de @8.8.8.8 | head -1 || echo "") if [ -z "$HOERDLE_IP" ]; then echo " ❌ Konnte nicht aufgelöst werden" else echo " ✅ IP: $HOERDLE_IP" fi echo "" echo " xn--hrdle-jua.de:" PUNYCODE_IP=$(dig +short xn--hrdle-jua.de @8.8.8.8 | head -1 || echo "") if [ -z "$PUNYCODE_IP" ]; then echo " ❌ Konnte nicht aufgelöst werden" else echo " ✅ IP: $PUNYCODE_IP" fi if [ -n "$HOERDLE_IP" ] && [ -n "$PUNYCODE_IP" ]; then if [ "$HOERDLE_IP" = "$PUNYCODE_IP" ]; then echo "" echo " ✅ Beide Domains zeigen auf die gleiche IP ($HOERDLE_IP)" else echo "" echo " ⚠️ WARNUNG: Domains zeigen auf unterschiedliche IPs!" echo " hoerdle.de: $HOERDLE_IP" echo " xn--hrdle-jua.de: $PUNYCODE_IP" echo " → Beide sollten auf die gleiche IP zeigen!" fi fi echo "" echo "2️⃣ HTTPS-Verbindungstest:" echo "" # Test hoerdle.de echo " hoerdle.de:" if timeout 5 bash -c "echo > /dev/tcp/hoerdle.de/443" 2>/dev/null; then echo " ✅ Port 443 ist erreichbar" if echo | timeout 5 openssl s_client -connect hoerdle.de:443 -servername hoerdle.de 2>/dev/null | grep -q "Verify return code: 0"; then CERT_VALID_UNTIL=$(echo | timeout 5 openssl s_client -connect hoerdle.de:443 -servername hoerdle.de 2>/dev/null | openssl x509 -noout -enddate 2>/dev/null | cut -d= -f2 || echo "") echo " ✅ Zertifikat gültig bis: $CERT_VALID_UNTIL" else echo " ❌ Zertifikat ungültig oder fehlt" fi else echo " ❌ Port 443 nicht erreichbar" fi echo "" echo " xn--hrdle-jua.de:" if timeout 5 bash -c "echo > /dev/tcp/xn--hrdle-jua.de/443" 2>/dev/null; then echo " ✅ Port 443 ist erreichbar" if echo | timeout 5 openssl s_client -connect xn--hrdle-jua.de:443 -servername xn--hrdle-jua.de 2>/dev/null | grep -q "Verify return code: 0"; then CERT_VALID_UNTIL=$(echo | timeout 5 openssl s_client -connect xn--hrdle-jua.de:443 -servername xn--hrdle-jua.de 2>/dev/null | openssl x509 -noout -enddate 2>/dev/null | cut -d= -f2 || echo "") echo " ✅ Zertifikat gültig bis: $CERT_VALID_UNTIL" else echo " ❌ Zertifikat ungültig oder fehlt (ERR_SSL_PROTOCOL_ERROR)" echo "" echo " 💡 Lösung: Führe aus: ./scripts/renew-caddy-certificates.sh" fi else echo " ❌ Port 443 nicht erreichbar" fi echo "" echo "3️⃣ Caddy-Container Status:" echo "" if docker ps | grep -q hoerdle-caddy; then echo " ✅ Caddy-Container läuft" echo "" echo " 📋 Letzte Caddy-Logs (Zertifikat-bezogen):" docker logs hoerdle-caddy 2>&1 | grep -i -E "(xn--hrdle|punycode|certificate|tls|acme|challenge)" | tail -5 || echo " (Keine relevanten Einträge gefunden)" else echo " ❌ Caddy-Container läuft nicht" echo " Starte mit: docker compose -f docker-compose.caddy.yml --profile production up -d" fi echo "" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "" echo "💡 Nächste Schritte:" echo "" if [ -n "$HOERDLE_IP" ] && [ -n "$PUNYCODE_IP" ] && [ "$HOERDLE_IP" != "$PUNYCODE_IP" ]; then echo " 1. ❗ DNS-Konfiguration prüfen!" echo " Beide Domains müssen auf die gleiche IP zeigen." echo " Prüfe in GoDaddy: https://dcc.godaddy.com/manage/hoerdle.de/dns" echo "" fi echo " 2. Wenn DNS korrekt ist, Zertifikat neu erstellen:" echo " ./scripts/renew-caddy-certificates.sh" echo "" echo " 3. Caddy-Logs überwachen:" echo " docker logs hoerdle-caddy -f" echo "" echo " 4. Detaillierte Diagnose:" echo " ./scripts/check-caddy-certificates.sh" echo ""