Nginx ·
Apache ·
Cipher Suites ·
HSTS ·
Security Headers ·
Best Practices
Die korrekte SSL/TLS-Konfiguration ist entscheidend für die Sicherheit Ihrer Webanwendungen. Diese Cheatsheet fasst die wichtigsten Einstellungen für Nginx, Apache und moderne Sicherheitsstandards zusammen.
Nginx SSL-Konfiguration – Die wichtigsten Direktiven für eine sichere TLS-Konfiguration im Nginx-Webserver.
| Direktive | Beschreibung | Empfehlung |
|---|---|---|
| ssl_certificate | Pfad zum Zertifikat (inkl. Chain) | /etc/letsencrypt/live/domain/fullchain.pem |
| ssl_certificate_key | Pfad zum privaten Schlüssel | /etc/letsencrypt/live/domain/privkey.pem |
| ssl_protocols | Erlaubte TLS-Versionen | TLSv1.2 TLSv1.3 |
| ssl_ciphers | Erlaubte Cipher Suites | ECDHE-ECDSA-AES256-GCM-SHA384:... (siehe unten) |
| ssl_prefer_server_ciphers | Server-Cipher bevorzugen | on |
| ssl_session_cache | Session-Caching für Performance | shared:SSL:10m |
| ssl_session_timeout | Session-Gültigkeit | 10m |
| ssl_stapling | OCSP Stapling aktivieren | on |
| ssl_stapling_verify | OCSP-Antworten verifizieren | on |
Apache SSL-Konfiguration – Die wichtigsten Direktiven für eine sichere TLS-Konfiguration im Apache-Webserver.
| Direktive | Beschreibung | Empfehlung |
|---|---|---|
| SSLCertificateFile | Pfad zum Zertifikat | /etc/ssl/certs/server.crt |
| SSLCertificateKeyFile | Pfad zum privaten Schlüssel | /etc/ssl/private/server.key |
| SSLCertificateChainFile | Pfad zur Zertifikatskette | /etc/ssl/certs/intermediate.crt |
| SSLProtocol | Erlaubte TLS-Versionen | all -SSLv3 -TLSv1 -TLSv1.1 |
| SSLCipherSuite | Erlaubte Cipher Suites | ECDHE-ECDSA-AES256-GCM-SHA384:... (siehe unten) |
| SSLHonorCipherOrder | Server-Cipher bevorzugen | on |
| SSLSessionCache | Session-Caching | shmcb:/run/ssl_scache(512000) |
| SSLSessionCacheTimeout | Session-Gültigkeit | 300 |
| SSLUseStapling | OCSP Stapling aktivieren | on |
| SSLStaplingCache | OCSP-Cache | shmcb:/run/ssl_stapling(512000) |
mod_ssl und mod_headers für SSL und Security Headers: sudo a2enmod ssl headers.
Cipher Suites – Die Auswahl der richtigen Verschlüsselungsalgorithmen ist entscheidend für Sicherheit und Performance. Bevorzugen Sie Cipher mit Forward Secrecy (PFS) und AEAD.
| Cipher Suite | PFS | AEAD | Empfehlung |
|---|---|---|---|
| TLS_AES_256_GCM_SHA384 | Ja (ECDHE) | Ja | ★ TLS 1.3 |
| TLS_CHACHA20_POLY1305_SHA256 | Ja (ECDHE) | Ja | ★ TLS 1.3 |
| ECDHE-ECDSA-AES256-GCM-SHA384 | Ja | Ja | ★ Empfohlen |
| ECDHE-RSA-AES256-GCM-SHA384 | Ja | Ja | ★ Empfohlen |
| ECDHE-ECDSA-CHACHA20-POLY1305 | Ja | Ja | ★ Empfohlen |
| ECDHE-RSA-CHACHA20-POLY1305 | Ja | Ja | ★ Empfohlen |
| DHE-RSA-AES256-GCM-SHA384 | Ja | Ja | ● Akzeptabel |
| ECDHE-RSA-AES128-GCM-SHA256 | Ja | Ja | ● Akzeptabel |
| RSA-AES256-GCM-SHA384 | Nein | Ja | ✗ Vermeiden (kein PFS) |
| TLS_RSA_WITH_3DES_EDE_CBC_SHA | Nein | Nein | ✗ Unsicher |
HSTS (HTTP Strict Transport Security) zwingt Browser, nur noch HTTPS-Verbindungen zu verwenden. OCSP Stapling beschleunigt die Widerrufsprüfung von Zertifikaten.
| Parameter | Beschreibung | Empfehlung |
|---|---|---|
| max-age | Gültigkeitsdauer in Sekunden | 63072000 (2 Jahre) |
| includeSubDomains | Gilt auch für Subdomains | Empfohlen |
| preload | Für HSTS Preload List | Für große Projekte |
Security Headers bieten zusätzlichen Schutz vor Cross-Site-Scripting (XSS), Clickjacking und anderen Angriffen. Sie werden als HTTP-Header gesendet.
| Header | Wert | Schutz vor |
|---|---|---|
| X-Frame-Options | DENY / SAMEORIGIN | Clickjacking (iframe-Einbettung) |
| X-Content-Type-Options | nosniff | MIME-Type-Sniffing |
| X-XSS-Protection | 1; mode=block | Cross-Site-Scripting (veraltet) |
| Content-Security-Policy | default-src 'self' | XSS und Injection |
| Referrer-Policy | strict-origin-when-cross-origin | Privacy (Referer-Daten) |
| Permissions-Policy | geolocation=() | Browser-APIs einschränken |
SSL/TLS Best Practices – Diese Checkliste fasst die wichtigsten Maßnahmen für eine sichere TLS-Konfiguration zusammen.
Nginx
Apache
Cipher
HSTS
Headers
Checkliste
ssl_protocols TLSv1.2 TLSv1.3; ·
ssl_ciphers ECDHE+AES256-GCM:ECDHE+CHACHA20; ·
add_header Strict-Transport-Security "max-age=63072000";