diff --git a/backend/scripts/fixCertPermissions.sh b/backend/scripts/fixCertPermissions.sh index 7b02a27..46aeb3a 100755 --- a/backend/scripts/fixCertPermissions.sh +++ b/backend/scripts/fixCertPermissions.sh @@ -58,10 +58,16 @@ ARCHIVE_DIR="/etc/letsencrypt/archive/tt-tagebuch.de" if sudo test -d "$ARCHIVE_DIR"; then echo "📜 Setze Berechtigungen für archive-Verzeichnis..." sudo chgrp -R "$CERT_GROUP" "$ARCHIVE_DIR" - sudo find "$ARCHIVE_DIR" -name "privkey*.pem" -exec chmod 640 {} \; - sudo find "$ARCHIVE_DIR" -name "fullchain*.pem" -exec chmod 644 {} \; - sudo find "$ARCHIVE_DIR" -name "cert*.pem" -exec chmod 644 {} \; - sudo find "$ARCHIVE_DIR" -name "chain*.pem" -exec chmod 644 {} \; + + # Setze Berechtigungen für alle privkey-Dateien (privkey.pem, privkey1.pem, privkey8.pem, etc.) + sudo find "$ARCHIVE_DIR" -type f -name "privkey*.pem" -exec chmod 640 {} \; + sudo find "$ARCHIVE_DIR" -type f -name "fullchain*.pem" -exec chmod 644 {} \; + sudo find "$ARCHIVE_DIR" -type f -name "cert*.pem" -exec chmod 644 {} \; + sudo find "$ARCHIVE_DIR" -type f -name "chain*.pem" -exec chmod 644 {} \; + + # Zeige, welche Dateien gefunden wurden + echo " Gefundene privkey-Dateien:" + sudo find "$ARCHIVE_DIR" -type f -name "privkey*.pem" -exec ls -la {} \; fi echo "✅ Berechtigungen gesetzt!" diff --git a/backend/scripts/testCertAccess.sh b/backend/scripts/testCertAccess.sh new file mode 100644 index 0000000..da59e98 --- /dev/null +++ b/backend/scripts/testCertAccess.sh @@ -0,0 +1,50 @@ +#!/bin/bash + +# Testet, ob www-data Zugriff auf die SSL-Zertifikate hat + +CERT_PATH="/etc/letsencrypt/live/tt-tagebuch.de/privkey.pem" + +echo "🔍 Teste Zugriff auf SSL-Zertifikate als www-data...\n" + +# Prüfe, ob die Datei existiert +if ! sudo test -f "$CERT_PATH"; then + echo "❌ Datei nicht gefunden: $CERT_PATH" + exit 1 +fi + +# Prüfe Berechtigungen +echo "📋 Dateiberechtigungen:" +sudo ls -la "$CERT_PATH" + +# Prüfe, auf welche Datei der Symlink zeigt +REAL_PATH=$(sudo readlink -f "$CERT_PATH") +echo "\n📋 Symlink zeigt auf: $REAL_PATH" +echo "📋 Berechtigungen der echten Datei:" +sudo ls -la "$REAL_PATH" + +# Teste, ob www-data die Datei lesen kann +echo "\n🔍 Teste Lesezugriff als www-data..." +if sudo -u www-data test -r "$CERT_PATH"; then + echo "✅ www-data kann die Datei lesen!" +else + echo "❌ www-data kann die Datei NICHT lesen!" + echo "\n📋 Prüfe Gruppen-Berechtigungen:" + sudo stat -c "%A %U:%G" "$REAL_PATH" + echo "\n📋 Prüfe, ob www-data in ssl-cert-Gruppe ist:" + sudo groups www-data +fi + +# Versuche, die Datei als www-data zu lesen +echo "\n🔍 Versuche, Datei als www-data zu öffnen..." +if sudo -u www-data cat "$CERT_PATH" > /dev/null 2>&1; then + echo "✅ www-data kann die Datei erfolgreich öffnen!" +else + echo "❌ www-data kann die Datei NICHT öffnen!" + echo "\n💡 Mögliche Lösungen:" + echo " 1. Prüfe, ob die Datei im archive-Verzeichnis die richtige Gruppe hat:" + echo " sudo ls -la $REAL_PATH" + echo " 2. Setze Gruppe und Berechtigungen erneut:" + echo " sudo chgrp ssl-cert $REAL_PATH" + echo " sudo chmod 640 $REAL_PATH" +fi +