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
|
./setup-ssl.sh
|
||||||
# Wählen Sie Option 4
|
# Wählen Sie Option 4
|
||||||
# Verwendet bereits vorhandene Apache2-Zertifikate
|
# Verwendet bereits vorhandene Apache2-Zertifikate
|
||||||
|
# ⚠️ Warnung bei Snakeoil-Zertifikaten (nur für localhost)
|
||||||
```
|
```
|
||||||
|
|
||||||
### 4. DNS-01 Challenge (für komplexe Setups)
|
### 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:
|
### Für Apache2-Zertifikate:
|
||||||
- Apache2 installiert oder Zertifikate in Standard-Pfaden
|
- Apache2 installiert oder Zertifikate in Standard-Pfaden
|
||||||
- Unterstützte Pfade:
|
- Unterstützte Pfade (priorisiert nach Qualität):
|
||||||
- `/etc/ssl/certs/ssl-cert-snakeoil.pem` (Ubuntu Standard)
|
- `/etc/letsencrypt/live/your-part.de/fullchain.pem` (Let's Encrypt - empfohlen)
|
||||||
- `/etc/letsencrypt/live/your-part.de/fullchain.pem` (Let's Encrypt)
|
- `/etc/letsencrypt/live/$(hostname)/fullchain.pem` (Let's Encrypt)
|
||||||
- `/etc/apache2/ssl/apache.crt` (Custom Apache2)
|
- `/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):
|
### Für Let's Encrypt (HTTP-01 Challenge):
|
||||||
- Port 80 muss verfügbar sein
|
- 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
|
exit 1
|
||||||
fi
|
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
|
# Funktionen
|
||||||
setup_letsencrypt() {
|
setup_letsencrypt() {
|
||||||
log_info "Let's Encrypt Setup für your-part.de"
|
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"
|
log_warning "Apache2 ist nicht installiert, aber wir können trotzdem die Zertifikate verwenden"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Prüfe verschiedene Apache2 Zertifikats-Pfade
|
# Prüfe verschiedene Apache2 Zertifikats-Pfade (priorisiert nach Qualität)
|
||||||
APACHE2_CERT_PATHS=(
|
APACHE2_CERT_PATHS=(
|
||||||
"/etc/ssl/certs/ssl-cert-snakeoil.pem"
|
"/etc/letsencrypt/live/your-part.de/fullchain.pem"
|
||||||
"/etc/ssl/certs/apache-selfsigned.crt"
|
"/etc/letsencrypt/live/$(hostname)/fullchain.pem"
|
||||||
"/etc/apache2/ssl/apache.crt"
|
"/etc/apache2/ssl/apache.crt"
|
||||||
"/etc/httpd/ssl/apache.crt"
|
"/etc/httpd/ssl/apache.crt"
|
||||||
"/etc/letsencrypt/live/$(hostname)/fullchain.pem"
|
"/etc/ssl/certs/apache-selfsigned.crt"
|
||||||
"/etc/letsencrypt/live/your-part.de/fullchain.pem"
|
"/etc/ssl/certs/ssl-cert-snakeoil.pem"
|
||||||
)
|
)
|
||||||
|
|
||||||
APACHE2_KEY_PATHS=(
|
APACHE2_KEY_PATHS=(
|
||||||
"/etc/ssl/private/ssl-cert-snakeoil.key"
|
"/etc/letsencrypt/live/your-part.de/privkey.pem"
|
||||||
"/etc/ssl/private/apache-selfsigned.key"
|
"/etc/letsencrypt/live/$(hostname)/privkey.pem"
|
||||||
"/etc/apache2/ssl/apache.key"
|
"/etc/apache2/ssl/apache.key"
|
||||||
"/etc/httpd/ssl/apache.key"
|
"/etc/httpd/ssl/apache.key"
|
||||||
"/etc/letsencrypt/live/$(hostname)/privkey.pem"
|
"/etc/ssl/private/apache-selfsigned.key"
|
||||||
"/etc/letsencrypt/live/your-part.de/privkey.pem"
|
"/etc/ssl/private/ssl-cert-snakeoil.key"
|
||||||
)
|
)
|
||||||
|
|
||||||
# Finde verfügbare Zertifikate
|
# Finde verfügbare Zertifikate
|
||||||
@@ -164,7 +169,7 @@ setup_apache2_certificates() {
|
|||||||
FOUND_KEY=""
|
FOUND_KEY=""
|
||||||
|
|
||||||
for cert_path in "${APACHE2_CERT_PATHS[@]}"; do
|
for cert_path in "${APACHE2_CERT_PATHS[@]}"; do
|
||||||
if [ -f "$cert_path" ]; then
|
if sudo test -f "$cert_path"; then
|
||||||
FOUND_CERT="$cert_path"
|
FOUND_CERT="$cert_path"
|
||||||
log_info "Gefundenes Zertifikat: $cert_path"
|
log_info "Gefundenes Zertifikat: $cert_path"
|
||||||
break
|
break
|
||||||
@@ -172,7 +177,7 @@ setup_apache2_certificates() {
|
|||||||
done
|
done
|
||||||
|
|
||||||
for key_path in "${APACHE2_KEY_PATHS[@]}"; do
|
for key_path in "${APACHE2_KEY_PATHS[@]}"; do
|
||||||
if [ -f "$key_path" ]; then
|
if sudo test -f "$key_path"; then
|
||||||
FOUND_KEY="$key_path"
|
FOUND_KEY="$key_path"
|
||||||
log_info "Gefundener Private Key: $key_path"
|
log_info "Gefundener Private Key: $key_path"
|
||||||
break
|
break
|
||||||
@@ -183,7 +188,7 @@ setup_apache2_certificates() {
|
|||||||
log_error "Keine Apache2-Zertifikate gefunden!"
|
log_error "Keine Apache2-Zertifikate gefunden!"
|
||||||
log_info "Verfügbare Pfade:"
|
log_info "Verfügbare Pfade:"
|
||||||
for path in "${APACHE2_CERT_PATHS[@]}" "${APACHE2_KEY_PATHS[@]}"; do
|
for path in "${APACHE2_CERT_PATHS[@]}" "${APACHE2_KEY_PATHS[@]}"; do
|
||||||
if [ -f "$path" ]; then
|
if sudo test -f "$path"; then
|
||||||
log_info " ✓ $path"
|
log_info " ✓ $path"
|
||||||
else
|
else
|
||||||
log_info " ✗ $path"
|
log_info " ✗ $path"
|
||||||
@@ -192,6 +197,20 @@ setup_apache2_certificates() {
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
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
|
# Erstelle Symlinks zu den Apache2-Zertifikaten
|
||||||
log_info "Erstelle Symlinks zu Apache2-Zertifikaten..."
|
log_info "Erstelle Symlinks zu Apache2-Zertifikaten..."
|
||||||
sudo ln -sf "$FOUND_CERT" "$CERT_FILE"
|
sudo ln -sf "$FOUND_CERT" "$CERT_FILE"
|
||||||
|
|||||||
Reference in New Issue
Block a user