Füge Überprüfung auf sudo-Rechte im SSL-Setup-Skript hinzu und aktualisiere die Pfade für Apache2-Zertifikate. Priorisiere Let's Encrypt-Zertifikate und füge Warnungen für Snakeoil-Zertifikate hinzu, um Benutzer über deren Einschränkungen zu informieren. Aktualisiere die Dokumentation entsprechend.
This commit is contained in:
committed by
Torsten (PC)
parent
60352d7932
commit
89c3873db7
@@ -21,6 +21,7 @@ Dieses Dokument beschreibt, wie Sie SSL/TLS-Zertifikate für den YourPart Daemon
|
||||
./setup-ssl.sh
|
||||
# Wählen Sie Option 4
|
||||
# Verwendet bereits vorhandene Apache2-Zertifikate
|
||||
# ⚠️ Warnung bei Snakeoil-Zertifikaten (nur für localhost)
|
||||
```
|
||||
|
||||
### 4. DNS-01 Challenge (für komplexe Setups)
|
||||
@@ -33,10 +34,11 @@ Dieses Dokument beschreibt, wie Sie SSL/TLS-Zertifikate für den YourPart Daemon
|
||||
|
||||
### Für Apache2-Zertifikate:
|
||||
- Apache2 installiert oder Zertifikate in Standard-Pfaden
|
||||
- Unterstützte Pfade:
|
||||
- `/etc/ssl/certs/ssl-cert-snakeoil.pem` (Ubuntu Standard)
|
||||
- `/etc/letsencrypt/live/your-part.de/fullchain.pem` (Let's Encrypt)
|
||||
- Unterstützte Pfade (priorisiert nach Qualität):
|
||||
- `/etc/letsencrypt/live/your-part.de/fullchain.pem` (Let's Encrypt - empfohlen)
|
||||
- `/etc/letsencrypt/live/$(hostname)/fullchain.pem` (Let's Encrypt)
|
||||
- `/etc/apache2/ssl/apache.crt` (Custom Apache2)
|
||||
- `/etc/ssl/certs/ssl-cert-snakeoil.pem` (Ubuntu Standard - nur localhost)
|
||||
|
||||
### Für Let's Encrypt (HTTP-01 Challenge):
|
||||
- Port 80 muss verfügbar sein
|
||||
|
||||
43
setup-ssl.sh
43
setup-ssl.sh
@@ -53,6 +53,11 @@ if ! command -v openssl &> /dev/null; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Prüfe ob wir sudo-Rechte haben
|
||||
if ! sudo -n true 2>/dev/null; then
|
||||
log_info "Einige Operationen benötigen sudo-Rechte für SSL-Verzeichnisse..."
|
||||
fi
|
||||
|
||||
# Funktionen
|
||||
setup_letsencrypt() {
|
||||
log_info "Let's Encrypt Setup für your-part.de"
|
||||
@@ -140,23 +145,23 @@ setup_apache2_certificates() {
|
||||
log_warning "Apache2 ist nicht installiert, aber wir können trotzdem die Zertifikate verwenden"
|
||||
fi
|
||||
|
||||
# Prüfe verschiedene Apache2 Zertifikats-Pfade
|
||||
# Prüfe verschiedene Apache2 Zertifikats-Pfade (priorisiert nach Qualität)
|
||||
APACHE2_CERT_PATHS=(
|
||||
"/etc/ssl/certs/ssl-cert-snakeoil.pem"
|
||||
"/etc/ssl/certs/apache-selfsigned.crt"
|
||||
"/etc/letsencrypt/live/your-part.de/fullchain.pem"
|
||||
"/etc/letsencrypt/live/$(hostname)/fullchain.pem"
|
||||
"/etc/apache2/ssl/apache.crt"
|
||||
"/etc/httpd/ssl/apache.crt"
|
||||
"/etc/letsencrypt/live/$(hostname)/fullchain.pem"
|
||||
"/etc/letsencrypt/live/your-part.de/fullchain.pem"
|
||||
"/etc/ssl/certs/apache-selfsigned.crt"
|
||||
"/etc/ssl/certs/ssl-cert-snakeoil.pem"
|
||||
)
|
||||
|
||||
APACHE2_KEY_PATHS=(
|
||||
"/etc/ssl/private/ssl-cert-snakeoil.key"
|
||||
"/etc/ssl/private/apache-selfsigned.key"
|
||||
"/etc/letsencrypt/live/your-part.de/privkey.pem"
|
||||
"/etc/letsencrypt/live/$(hostname)/privkey.pem"
|
||||
"/etc/apache2/ssl/apache.key"
|
||||
"/etc/httpd/ssl/apache.key"
|
||||
"/etc/letsencrypt/live/$(hostname)/privkey.pem"
|
||||
"/etc/letsencrypt/live/your-part.de/privkey.pem"
|
||||
"/etc/ssl/private/apache-selfsigned.key"
|
||||
"/etc/ssl/private/ssl-cert-snakeoil.key"
|
||||
)
|
||||
|
||||
# Finde verfügbare Zertifikate
|
||||
@@ -164,7 +169,7 @@ setup_apache2_certificates() {
|
||||
FOUND_KEY=""
|
||||
|
||||
for cert_path in "${APACHE2_CERT_PATHS[@]}"; do
|
||||
if [ -f "$cert_path" ]; then
|
||||
if sudo test -f "$cert_path"; then
|
||||
FOUND_CERT="$cert_path"
|
||||
log_info "Gefundenes Zertifikat: $cert_path"
|
||||
break
|
||||
@@ -172,7 +177,7 @@ setup_apache2_certificates() {
|
||||
done
|
||||
|
||||
for key_path in "${APACHE2_KEY_PATHS[@]}"; do
|
||||
if [ -f "$key_path" ]; then
|
||||
if sudo test -f "$key_path"; then
|
||||
FOUND_KEY="$key_path"
|
||||
log_info "Gefundener Private Key: $key_path"
|
||||
break
|
||||
@@ -183,7 +188,7 @@ setup_apache2_certificates() {
|
||||
log_error "Keine Apache2-Zertifikate gefunden!"
|
||||
log_info "Verfügbare Pfade:"
|
||||
for path in "${APACHE2_CERT_PATHS[@]}" "${APACHE2_KEY_PATHS[@]}"; do
|
||||
if [ -f "$path" ]; then
|
||||
if sudo test -f "$path"; then
|
||||
log_info " ✓ $path"
|
||||
else
|
||||
log_info " ✗ $path"
|
||||
@@ -192,6 +197,20 @@ setup_apache2_certificates() {
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Warnung für Snakeoil-Zertifikate
|
||||
if [[ "$FOUND_CERT" == *"snakeoil"* ]]; then
|
||||
log_warning "ACHTUNG: Snakeoil-Zertifikat erkannt!"
|
||||
log_warning "Dieses Zertifikat ist nur für localhost gültig, nicht für your-part.de"
|
||||
log_warning "Für Produktionsumgebungen sollten Sie Let's Encrypt verwenden"
|
||||
echo ""
|
||||
read -p "Möchten Sie trotzdem fortfahren? (y/N): " -n 1 -r
|
||||
echo ""
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
||||
log_info "Setup abgebrochen. Verwenden Sie Option 2 für Let's Encrypt."
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
|
||||
# Erstelle Symlinks zu den Apache2-Zertifikaten
|
||||
log_info "Erstelle Symlinks zu Apache2-Zertifikaten..."
|
||||
sudo ln -sf "$FOUND_CERT" "$CERT_FILE"
|
||||
|
||||
Reference in New Issue
Block a user