Zum Hauptinhalt springen

Webserver

Der Artikel enthält Beispiele für Konfigurationsparameter der Webserver Apache2 und Nginx, da diese am häufigsten für Passwork-Installationen verwendet werden.

Apache2

<VirtualHost *:443>
ServerName example.com

SSLEngine on
SSLCertificateFile /etc/ssl/passwork/fullchain.pem
SSLCertificateKeyFile /etc/ssl/passwork/privkey.pem
SSLCertificateChainFile /etc/ssl/passwork/chain.pem # if fullchain does not contain full chain

SSLCipherSuite "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:
ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:
ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256"

SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLHonorCipherOrder on

DocumentRoot /var/www/public
<Directory /var/www/public>
Options +FollowSymLinks -Indexes -MultiViews
AllowOverride FileInfo
Require all granted
</Directory>
<FilesMatch \.php$>
# DEB
#SetHandler "proxy:unix:/run/php/php8.3-fpm.sock|fcgi://localhost/"
# RPM
#SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost/"
</FilesMatch>
</VirtualHost>
    SSLUseStapling on
SSLStaplingResponderTimeout 5
SSLStaplingReturnResponderErrors off
SSLStaplingCache shmcb:/var/run/apache2/stapling_cache(128000)

SSLCipherSuite — Definiert die Liste der erlaubten Chiffren und enthält nur moderne und starke Algorithmen.

SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 — Aktiviert nur moderne und sichere TLS-Protokollversionen (TLS 1.2 und 1.3); deaktiviert verwundbare und veraltete Versionen (SSLv2, SSLv3, TLS 1.0/1.1).

SSLHonorCipherOrder on — Priorisiert die vom Server festgelegte Chiffrenliste (nicht die des Clients), was die Kontrolle über die verwendeten Algorithmen ermöglicht.

Aktiviert das TLS-Sitzungscaching mit SHMCB (Shared Memory Cache), was wiederholte Verbindungen beschleunigt. Cachegröße: ~512 KB.

SSLSessionCache shmcb:/var/run/apache2/ssl_scache(512000)

SSLSessionCacheTimeout 300 — Legt die Lebensdauer von TLS-Sitzungen im Cache fest (in Sekunden).

SSL Stapling (OCSP Stapling) — ein Mechanismus, bei dem der Server selbst den Status des TLS-Zertifikats bei der Zertifizierungsstelle (CA) abfragt und diesen an die TLS-Sitzung anhängt. Dies beschleunigt die Verbindung und reduziert die Last auf die CA, wodurch die Privatsphäre des Clients verbessert wird.

gefahr

Verwenden Sie OCSP Stapling nur, wenn Ihr Passwork-Server auf öffentliche DNS-Server zugreifen kann.

SSLUseStapling on — Aktiviert die OCSP-Stapling-Unterstützung – der Server hängt den TLS-Zertifikatsstatus der CA an die Verbindung an und verbessert so Leistung und Privatsphäre.

SSLStaplingResponderTimeout 5 — Maximale Wartezeit auf eine Antwort vom OCSP-Server (CA) – wenn innerhalb von 5 Sekunden keine Antwort erfolgt, gilt die Anfrage als fehlgeschlagen.

SSLStaplingReturnResponderErrors off — Wenn der OCSP-Server nicht antwortet, wird kein Fehler an den Client gesendet. Die Verbindung ist weiterhin erlaubt (verbessert die Ausfallsicherheit in instabilen Netzwerken).

OCSP-Antworten im Shared Memory zwischenspeichern, ca. 128 KB, um die Häufigkeit der CA-Abfragen zu reduzieren.

SSLStaplingCache shmcb:/var/run/apache2/stapling_cache(128000)

SSLSessionTickets off — Standardmäßig sind Tickets aktiviert, da sie den Aufbau der TLS-Verbindung beschleunigen, indem sie Parameter vorheriger Sitzungen wiederverwenden und so die Serverlast reduzieren. Die Deaktivierung betrifft nur Verbindungen mit TLS 1.2. Für TLS 1.3 wird die Verwaltung von OpenSSL übernommen, und Apache2 kann deren Verwendung nicht deaktivieren.

Nginx

		listen 443 ssl default_server;
ssl_certificate /server/ssl/fullchain.pem;
ssl_certificate_key /server/ssl/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:
ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:
ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:50m;
ssl_session_timeout 1d;
ssl_stapling on;
ssl_stapling_verify on;
resolver 1.1.1.1 8.8.8.8 valid=300s;
resolver_timeout 5s;

ssl_protocols TLSv1.2 TLSv1.3; — Beschränkt die erlaubten TLS-Versionen auf nur sichere – deaktiviert veraltete und verwundbare SSL/TLS-Protokolle (TLS 1.0/1.1).

ssl_ciphers — Definiert die Liste der erlaubten Chiffren – enthält nur moderne und starke Algorithmen.

ssl_prefer_server_ciphers on; — Gibt an, dass die Server-Chiffrenpriorität verwendet werden soll (nicht die des Clients), um die Kontrolle über die Verbindungssicherheit zu erhöhen.

ssl_session_cache shared:SSL:50m; — Aktiviert das TLS-Sitzungscaching zwischen Verbindungen mit 50 MB, beschleunigt Wiederverbindungen und reduziert die Last.

ssl_session_timeout 1d; — Legt die Sitzungslebensdauer im Cache fest – der Client kann die TLS-Sitzung einen Tag lang wiederverwenden, wenn der Cache nicht gelöscht wird.

SSL Stapling (OCSP Stapling) — ein Mechanismus, bei dem der Server selbst den Status des TLS-Zertifikats bei der Zertifizierungsstelle (CA) abfragt und diesen an die TLS-Sitzung anhängt. Dies beschleunigt die Verbindung und reduziert die Last auf die CA, wodurch die Privatsphäre des Clients verbessert wird.

gefahr

Verwenden Sie OCSP Stapling nur, wenn Passwork auf öffentliche DNS-Server zugreifen kann.

ssl_stapling on; — Aktiviert OCSP Stapling – der Server liefert einen aktuellen Zertifikatsstatus, was die Überprüfung beschleunigt und die Privatsphäre des Clients verbessert.

ssl_stapling_verify on; — Erfordert, dass der Server die Authentizität der OCSP-Antwort mit der Root-CA überprüft, um die Übermittlung ungültiger oder gefälschter Statusmeldungen zu vermeiden.

resolver 1.1.1.1 8.8.8.8 valid=300s; — Gibt DNS-Server für die Auflösung von Domainnamen an (z. B. für OCSP-Prüfungen); Antworten werden 5 Minuten zwischengespeichert. Das Beispiel verwendet Cloudflare (1.1.1.1) und Google DNS (8.8.8.8).

resolver_timeout 5s; — Maximale Wartezeit auf eine DNS-Antwort – wenn innerhalb von 5 Sekunden keine Antwort erfolgt, gilt die Anfrage als fehlgeschlagen.

ssl_session_tickets off; — Deaktiviert TLS-Sitzungstickets.

Standardmäßig sind Tickets aktiviert, da sie den Aufbau der TLS-Verbindung beschleunigen, indem sie Parameter vorheriger Sitzungen wiederverwenden und so die Serverlast reduzieren. Die Deaktivierung ist nur sinnvoll, wenn alle folgenden Bedingungen gleichzeitig erfüllt sind:

  • Die Anwendung läuft auf mehreren Servern;
  • Ein einziges Wildcard-Zertifikat wird auf allen Instanzen verwendet;
  • Die Server sind auf verschiedene Rechenzentren verteilt, und es gibt keine zentrale Verwaltung der TLS-Sitzungsschlüssel.