Files
yourpart3/SSL-SETUP.md

4.2 KiB

SSL/TLS Setup für YourPart Daemon

Dieses Dokument beschreibt, wie Sie SSL/TLS-Zertifikate für den YourPart Daemon einrichten können.

🚀 Schnellstart

1. Self-Signed Certificate (Entwicklung/Testing)

./setup-ssl.sh
# Wählen Sie Option 1

2. Let's Encrypt Certificate (Produktion)

./setup-ssl.sh
# Wählen Sie Option 2

3. Apache2-Zertifikate verwenden (empfohlen für Ubuntu)

./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)

./setup-ssl-dns.sh
# Für Cloudflare, Route53, etc.

📋 Voraussetzungen

Für Apache2-Zertifikate:

  • Apache2 installiert oder Zertifikate in Standard-Pfaden
  • 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
  • Domain your-part.de muss auf den Server zeigen
  • Kein anderer Service auf Port 80

Für DNS-01 Challenge:

  • DNS-Provider Account (Cloudflare, Route53, etc.)
  • API-Credentials für DNS-Management

🔧 Konfiguration

Nach der Zertifikats-Erstellung:

  1. SSL in der Konfiguration aktivieren:

    # /etc/yourpart/daemon.conf
    WEBSOCKET_SSL_ENABLED=true
    WEBSOCKET_SSL_CERT_PATH=/etc/yourpart/server.crt
    WEBSOCKET_SSL_KEY_PATH=/etc/yourpart/server.key
    
  2. Daemon neu starten:

    sudo systemctl restart yourpart-daemon
    
  3. Verbindung testen:

    # WebSocket Secure
    wss://your-part.de:4551
    
    # Oder ohne SSL
    ws://your-part.de:4551
    

🔄 Automatische Erneuerung

Let's Encrypt-Zertifikate:

  • Cron Job: Täglich um 2:30 Uhr
  • Script: /etc/yourpart/renew-ssl.sh
  • Log: /var/log/yourpart/ssl-renewal.log

Apache2-Zertifikate:

  • Ubuntu Snakeoil: Automatisch von Apache2 verwaltet
  • Let's Encrypt: Automatische Erneuerung wenn erkannt
  • Custom: Manuelle Verwaltung erforderlich

📁 Dateistruktur

/etc/yourpart/
├── server.crt          # Zertifikat (Symlink zu Let's Encrypt)
├── server.key          # Private Key (Symlink zu Let's Encrypt)
├── renew-ssl.sh        # Auto-Renewal Script
└── cloudflare.ini      # Cloudflare Credentials (falls verwendet)

/etc/letsencrypt/live/your-part.de/
├── fullchain.pem       # Vollständige Zertifikatskette
├── privkey.pem         # Private Key
├── cert.pem            # Zertifikat
└── chain.pem           # Intermediate Certificate

🛠️ Troubleshooting

Zertifikat wird nicht akzeptiert

# Prüfe Zertifikats-Gültigkeit
openssl x509 -in /etc/yourpart/server.crt -text -noout

# Prüfe Berechtigungen
ls -la /etc/yourpart/server.*

Let's Encrypt Challenge fehlgeschlagen

# Prüfe Port 80
sudo netstat -tlnp | grep :80

# Prüfe DNS
nslookup your-part.de

# Prüfe Firewall
sudo ufw status

Auto-Renewal funktioniert nicht

# Prüfe Cron Jobs
sudo crontab -l

# Teste Renewal Script
sudo /etc/yourpart/renew-ssl.sh

# Prüfe Logs
tail -f /var/log/yourpart/ssl-renewal.log

🔒 Sicherheit

Berechtigungen

  • Zertifikat: 644 (readable by all, writable by owner)
  • Private Key: 600 (readable/writable by owner only)
  • Owner: yourpart:yourpart

Firewall

# Öffne Port 80 für Let's Encrypt Challenge
sudo ufw allow 80/tcp

# Öffne Port 4551 für WebSocket
sudo ufw allow 4551/tcp

📚 Weitere Informationen

🆘 Support

Bei Problemen:

  1. Prüfen Sie die Logs: sudo journalctl -u yourpart-daemon -f
  2. Testen Sie die Zertifikate: openssl s_client -connect your-part.de:4551
  3. Prüfen Sie die Firewall: sudo ufw status