Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung |
apache:ssl [2017/05/05 18:11] – st | apache:ssl [2020/11/14 15:27] (aktuell) – [sichere SSL Einstellungen] st |
---|
| ====== SSL-Verschlüsselung in Apache2 (openssl) ====== |
| |
| Bei [[server:Webserver|Webservern]] wie [[apache:Apache]](2) mit wird [[netzwerke:ssl und tls|SSL oder TLS]] die [[security:verschlüsselung#hybride verschlüsselung|Hybride Verschlüsselung]] zur Absicherung des Datenverkehrs eingesetzt. |
| |
| :!: [[apache:virtuelle server#namens-basierte virtuelle hosts|namensbasierte virtuelle Server]] sind in Verbindung mit aktuellen Clients mit Unterstützung der TLS-Erweiterung [[wpde>Server Name Indication (SNI)]] kein Problem ((Für ältere Browser Internet Explorer 6 auf Windows XP, Java 6u45, ... muss eine eigene IP pro [[netzwerke:ssl und tls|SSL]]-geschützter Seite existieren. Der Grund ist das die passende IP Teil des HTTP-Request ist, der nur mit dem passenden Host-Schlüssel entschlüsselt werden kann. Da aber der passende Host erst anhand des HTTP-Request ermittelt wird, kann es an dieser Stelle zu keiner Verifizierung kommen.)) Es sollte aber ein Standardhost definiert werden der Client auf die fehlende Unterstützung hinweist. |
| |
| Siehe auch [[security:ssl Zertifikate]]. |
| |
| ===== Apache2 Konfiguration für SSL ===== |
| |
| * das SSL-Modul aktivieren: |
| |
| <code> |
| a2enmod ssl |
| </code> |
| |
| * **überprüfen ob Apache auf Port 443 lauscht** (Direktive "Listen 443") |
| * **Konfiguration der virtuellen Hosts anpassen**:<file> |
| ===== sichere SSL Einstellungen ===== |
| |
| Alternativ der [[https://mozilla.github.io/server-side-tls/ssl-config-generator/?server=apache|Mozilla SSL Configuration Generator]]. |
| |
| <code apache> |
| SSLEngine On |
| SSLProtocol All -SSLv2 -SSLv3 |
| |
| SSLHonorCipherOrder On |
| SSLCipherSuite 'EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA:EECDH:EDH+AESGCM:EDH:ECDH+AESGCM:ECDH+AES:ECDH:HIGH:MEDIUM:!RC4:!3DES:!CAMELLIA:!SEED:!aNULL:!MD5:!eNULL:!LOW:!EXP:!DSS:!PSK:!SRP' |
| |
| SSLCertificateFile /etc/apache2/DATEI.crt |
| SSLCertificateKeyFile /etc/apache2/DATEI.key |
| SSLCACertificateFile /etc/apache2/intermediate-ca-cert.crt |
| |
| <IfModule mod_headers.c> |
| Header always set Strict-Transport-Security "max-age=15768000" |
| </IfModule> |
| </code> |
| * **restriktive Dateirechte vergeben**: Den Schlüsseldateien ''chmod 600'' zuweisen (''chown root'') |
| * **Sicherheitsmechanismen** |
| * **Testseiten**: https://www.ssllabs.com/ssltest oder https://sslcheck.globalsign.com |
| * TLS v1.2: benötigt openssl ab Version 1.0.1 ([[debian:Debian]]: ab [[http://packages.debian.org/wheezy/openssl|wheezy]]) |
| * TLS v1.3: benötigt openssl ab Version 1.1.1 ([[debian:Debian]]: ab [[http://packages.debian.org/buster/openssl|buster]]) |
| * Forward Secrecy: benötigt Apache 2.4x ([[debian:Debian]]: ab [[http://packages.debian.org/jessie/apache2|jessie]]) siehe auch: [[http://blog.ivanristic.com/2013/08/configuring-apache-nginx-and-openssl-for-forward-secrecy.html|Configuring Apache, Nginx, and OpenSSL for Forward Secrecy]] |
| |