Update Socket.IO deployment documentation to include SSL certificate permissions setup
This commit revises the deployment documentation for the Socket.IO backend, adding a new section on setting SSL certificate permissions. It introduces a script to manage certificate access for the Node.js process, ensuring proper functionality of the HTTPS server on port 3051. The order of sections has also been adjusted for clarity, enhancing the overall deployment guidance.
This commit is contained in:
@@ -18,25 +18,34 @@ sudo cp /var/www/tt-tagebuch.de/apache.conf.example /etc/apache2/sites-available
|
||||
sudo systemctl restart apache2
|
||||
```
|
||||
|
||||
### 3. Backend neu starten
|
||||
### 3. SSL-Zertifikat-Berechtigungen setzen
|
||||
|
||||
**WICHTIG:** Der Node.js-Prozess muss Zugriff auf die SSL-Zertifikate haben!
|
||||
|
||||
```bash
|
||||
cd /var/www/tt-tagebuch.de/backend
|
||||
chmod +x scripts/fixCertPermissions.sh
|
||||
sudo ./scripts/fixCertPermissions.sh
|
||||
```
|
||||
|
||||
Dieses Skript:
|
||||
- Erstellt die Gruppe `ssl-cert` (falls nicht vorhanden)
|
||||
- Fügt den Service-Benutzer zur Gruppe hinzu
|
||||
- Setzt die Berechtigungen für die Zertifikate
|
||||
|
||||
### 4. Backend neu starten
|
||||
|
||||
**WICHTIG:** Der Backend-Server muss neu gestartet werden, damit der HTTPS-Server auf Port 3051 läuft!
|
||||
|
||||
```bash
|
||||
cd /var/www/tt-tagebuch.de/backend
|
||||
|
||||
# Falls als systemd-Service:
|
||||
sudo systemctl restart tt-tagebuch-backend
|
||||
sudo systemctl restart tt-tagebuch
|
||||
|
||||
# Oder falls als PM2-Prozess:
|
||||
pm2 restart tt-tagebuch-backend
|
||||
|
||||
# Oder falls direkt mit node:
|
||||
# Stoppe den laufenden Prozess und starte neu:
|
||||
# node server.js
|
||||
```
|
||||
|
||||
### 4. Prüfen, ob HTTPS-Server läuft
|
||||
### 5. Prüfen, ob HTTPS-Server läuft
|
||||
|
||||
```bash
|
||||
# Prüfe, ob Port 3051 geöffnet ist
|
||||
@@ -55,7 +64,7 @@ Du solltest folgende Meldung sehen:
|
||||
🚀 HTTPS-Server für Socket.IO läuft auf Port 3051
|
||||
```
|
||||
|
||||
### 5. Diagnose-Skript ausführen
|
||||
### 6. Diagnose-Skript ausführen
|
||||
|
||||
```bash
|
||||
cd /var/www/tt-tagebuch.de/backend
|
||||
|
||||
65
backend/scripts/fixCertPermissions.sh
Normal file
65
backend/scripts/fixCertPermissions.sh
Normal file
@@ -0,0 +1,65 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Skript zum Fixen der SSL-Zertifikat-Berechtigungen für Node.js
|
||||
|
||||
CERT_DIR="/etc/letsencrypt/live/tt-tagebuch.de"
|
||||
CERT_GROUP="ssl-cert" # Standard-Gruppe für SSL-Zertifikate
|
||||
|
||||
# Prüfe, ob Zertifikate existieren
|
||||
if [ ! -d "$CERT_DIR" ]; then
|
||||
echo "❌ Zertifikat-Verzeichnis nicht gefunden: $CERT_DIR"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Prüfe, ob ssl-cert-Gruppe existiert
|
||||
if ! getent group "$CERT_GROUP" > /dev/null 2>&1; then
|
||||
echo "⚠️ Gruppe '$CERT_GROUP' existiert nicht. Erstelle sie..."
|
||||
sudo groupadd "$CERT_GROUP"
|
||||
fi
|
||||
|
||||
# Prüfe, welcher Benutzer den systemd-Service ausführt
|
||||
SERVICE_USER=$(systemctl show -p User tt-tagebuch.service 2>/dev/null | cut -d= -f2)
|
||||
|
||||
if [ -z "$SERVICE_USER" ]; then
|
||||
echo "⚠️ Konnte Service-Benutzer nicht ermitteln. Verwende 'www-data' als Standard."
|
||||
SERVICE_USER="www-data"
|
||||
fi
|
||||
|
||||
echo "🔧 Konfiguriere SSL-Zertifikat-Berechtigungen..."
|
||||
echo " Service-Benutzer: $SERVICE_USER"
|
||||
echo " Zertifikat-Verzeichnis: $CERT_DIR"
|
||||
|
||||
# Füge Service-Benutzer zur ssl-cert-Gruppe hinzu
|
||||
sudo usermod -a -G "$CERT_GROUP" "$SERVICE_USER"
|
||||
|
||||
# Setze Gruppen-Berechtigungen für Zertifikate
|
||||
echo "📜 Setze Berechtigungen für Zertifikate..."
|
||||
|
||||
# Setze Gruppe für das Verzeichnis
|
||||
sudo chgrp -R "$CERT_GROUP" "$CERT_DIR"
|
||||
|
||||
# Setze Berechtigungen: Owner (root) kann lesen/schreiben, Gruppe kann lesen
|
||||
sudo chmod 640 "$CERT_DIR/privkey.pem"
|
||||
sudo chmod 644 "$CERT_DIR/fullchain.pem"
|
||||
sudo chmod 644 "$CERT_DIR/cert.pem"
|
||||
sudo chmod 644 "$CERT_DIR/chain.pem"
|
||||
|
||||
# Setze auch für das archive-Verzeichnis (wo die Symlinks hinzeigen)
|
||||
ARCHIVE_DIR="/etc/letsencrypt/archive/tt-tagebuch.de"
|
||||
if [ -d "$ARCHIVE_DIR" ]; then
|
||||
sudo chgrp -R "$CERT_GROUP" "$ARCHIVE_DIR"
|
||||
sudo chmod 640 "$ARCHIVE_DIR/privkey*.pem"
|
||||
sudo chmod 644 "$ARCHIVE_DIR/fullchain*.pem"
|
||||
sudo chmod 644 "$ARCHIVE_DIR/cert*.pem"
|
||||
sudo chmod 644 "$ARCHIVE_DIR/chain*.pem"
|
||||
fi
|
||||
|
||||
echo "✅ Berechtigungen gesetzt!"
|
||||
echo ""
|
||||
echo "⚠️ WICHTIG: Der Service muss neu gestartet werden, damit die Gruppenänderung wirksam wird:"
|
||||
echo " sudo systemctl restart tt-tagebuch"
|
||||
echo ""
|
||||
echo "📋 Prüfe Berechtigungen:"
|
||||
ls -la "$CERT_DIR/privkey.pem"
|
||||
ls -la "$CERT_DIR/fullchain.pem"
|
||||
|
||||
Reference in New Issue
Block a user