Files
hoerdle/scripts/check-caddy-certificates.sh
Hördle Bot 107739ade9 Fix: Update Dockerfile to optimize build process and reduce image size
- Refactored the Dockerfile to streamline the build process.
- Removed unnecessary layers and combined commands for efficiency.
- Improved caching strategy to enhance build performance.
2025-12-01 17:54:12 +01:00

95 lines
3.5 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# Script zum Prüfen der Caddy-Zertifikate
set -e
echo "🔍 Prüfe Caddy-Zertifikat-Status..."
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 "✅ Caddy-Container läuft"
echo ""
# Prüfe Zertifikate im Volume
echo "📜 Gespeicherte Zertifikate im Volume:"
docker exec hoerdle-caddy find /data/caddy/certificates -name "*.crt" -o -name "*.key" 2>/dev/null | head -20 || echo " (Keine Zertifikate gefunden oder Fehler beim Zugriff)"
echo ""
# Prüfe Caddy-Logs für Zertifikats-Fehler
echo "📋 Letzte Caddy-Logs (Zertifikat-bezogen):"
docker logs hoerdle-caddy 2>&1 | grep -i -E "(certificate|tls|acme|challenge|error)" | tail -20 || echo " (Keine relevanten Log-Einträge gefunden)"
echo ""
# Prüfe DNS-Einträge
echo "🌐 DNS-Einträge prüfen:"
echo ""
# Prüfe hoerdle.de
echo "1⃣ hoerdle.de:"
HOERDLE_IP=$(dig +short hoerdle.de @8.8.8.8 | head -1 || echo "DNS-Fehler")
if [ -n "$HOERDLE_IP" ] && [ "$HOERDLE_IP" != "DNS-Fehler" ]; then
echo " ✅ DNS-A-Record: $HOERDLE_IP"
else
echo " ❌ DNS-A-Record: nicht aufgelöst"
fi
# Prüfe xn--hrdle-jua.de (Punycode)
echo "2⃣ xn--hrdle-jua.de (hördle.de):"
PUNYCODE_IP=$(dig +short xn--hrdle-jua.de @8.8.8.8 | head -1 || echo "DNS-Fehler")
if [ -n "$PUNYCODE_IP" ] && [ "$PUNYCODE_IP" != "DNS-Fehler" ]; then
echo " ✅ DNS-A-Record: $PUNYCODE_IP"
else
echo " ❌ DNS-A-Record: nicht aufgelöst"
fi
# Prüfe auch die Unicode-Domain direkt (falls unterstützt)
echo "3⃣ hördle.de (Unicode):"
UNICODE_IP=$(dig +short hördle.de @8.8.8.8 2>/dev/null | head -1 || echo "Nicht unterstützt")
if [ -n "$UNICODE_IP" ] && [ "$UNICODE_IP" != "Nicht unterstützt" ]; then
echo " ✅ DNS-A-Record: $UNICODE_IP"
else
echo " ⚠️ Unicode-Domain-Abfrage nicht unterstützt (normal)"
fi
echo ""
echo "🔒 Zertifikat-Test:"
echo ""
# Teste HTTPS-Verbindung zu hoerdle.de
echo "1⃣ hoerdle.de HTTPS:"
if echo | timeout 5 openssl s_client -connect hoerdle.de:443 -servername hoerdle.de 2>/dev/null | grep -q "Verify return code: 0"; then
echo " ✅ Zertifikat gültig"
CERT_INFO=$(echo | timeout 5 openssl s_client -connect hoerdle.de:443 -servername hoerdle.de 2>/dev/null | openssl x509 -noout -subject -dates 2>/dev/null || echo "")
echo " $CERT_INFO" | sed 's/^/ /'
else
echo " ❌ Zertifikat fehlt oder ungültig"
fi
echo ""
echo "2⃣ hördle.de (xn--hrdle-jua.de) HTTPS:"
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
echo " ✅ Zertifikat gültig"
CERT_INFO=$(echo | timeout 5 openssl s_client -connect xn--hrdle-jua.de:443 -servername xn--hrdle-jua.de 2>/dev/null | openssl x509 -noout -subject -dates 2>/dev/null || echo "")
echo " $CERT_INFO" | sed 's/^/ /'
else
echo " ❌ Zertifikat fehlt oder ungültig"
fi
echo ""
echo "📝 Zertifikat-Details aus Caddy Volume:"
echo ""
docker exec hoerdle-caddy ls -la /data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/ 2>/dev/null | head -10 || echo " (Verzeichnis nicht gefunden oder leer)"
echo ""
echo "💡 Tipps:"
echo " - Wenn kein Zertifikat vorhanden ist, führe aus: ./scripts/renew-caddy-certificates.sh"
echo " - Prüfe die Caddy-Logs: docker logs hoerdle-caddy"
echo " - Prüfe DNS-Einträge in GoDaddy: https://dcc.godaddy.com/manage/hoerdle.de/dns"