Enhance fixCertPermissions.sh to improve SSL certificate permission handling

This commit updates the fixCertPermissions.sh script to include more specific permission settings for SSL certificate files by using the `-type f` option with the `find` command. It also adds a new feature to display the found private key files, improving visibility and debugging capabilities during the permission setting process.
This commit is contained in:
Torsten Schulz (local)
2025-11-16 11:24:23 +01:00
parent 5f3b6200ec
commit 903b036a63
2 changed files with 60 additions and 4 deletions

View File

@@ -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!"

View File

@@ -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