Da der Webserver eine große Angriffsfläche bietet, sollte dieser immer auf dem aktuellen Stand sein und auch keine „unsicheren“ Protokolle mehr unterstützen. Im Internet gibt es sehr viele Anleitungen, was man alles Konfigurieren sollte und was nicht. Diese sind jedoch mit der Zeit immer veraltet und manche Anleitungen sind einfach fehlerhaft bzw falsch.

Eine einfache Möglichkeit sich aktuelle Konfigurationen zu generieren ist der Mozilla SSL Configuration Generator. Leider habe ich beim Testen gemerkt, dass Features wie  X-Frame-Options, X-XSS-Protection, X-Content-Type-Options und weitere Sachen nicht genutzt werden. Daher ist diese Konfiguration zwar nicht direkt schlecht, aber es gibt bessere. Aber als Grundlage für spätere Optimierungen ist die sehr gut geeignet.

Mozilla SSL Configuration Generator erstellt einfach per Klick Konfigurationen für

  • Apache
  • Nginx
  • Lighttpd
  • HAProxy
  • AWS Elb

Daneben kann noch aufgewählt werden, die „sicher“ die Konfigurationen sein sollen.
Eine verbesserte Sicherheit schließt jedoch oft ältere Geräte aus, da diese keine neuen Protokolle unterstützen. Hier sollte man also einen guten Mittelweg finden.

Um eure Einstellungen zu überprüfen, könnt ihr auf diesen Webseiten eure Webseite testen.

https://observatory.mozilla.org/

https://www.htbridge.com/ssl/

 

Beispiel Konfiguration von nginx

Ihr müsst euch die von Mozilla erstellte Konfiguration in folgende Datei kopieren.

nano /etc/nginx/sites-available/default

Bei der Mozilla Konfiguration wird noch ein Diffie-Hellman Key verwendet. Diesen generiert ihr so:

openssl dhparam -outform PEM -out dh2048.pem 2048

In der Konfiguration müsst ihr ebenfalls noch hinzufügen:

  • servername
  • Webroot
  • index
  • PHP Konfiguration

Dies sieht bei mir so aus:

server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;
        .
        .
        .
        server_name goneuland.de www.goneuland.de;
        root /var/www/html/;
        index index.html index.htm index.php;
        
        #für PHP5
        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
        }

        #für PHP7
        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/run/php/php7.0-fpm.sock;

        }
}

Bei der PHP Konfiguration nur den Teil für eure Version kopieren.

Zum Schluss den Server neustarten.

service nginx restart

 

Teile diesen Beitrag
Christian

Ein Kommentar

  1. Hallo Christian, vielen Dank und die Mühen für dieses tolle Tutorial.

    Fragen:

    wird das Diffie-Hellman Key Zertifikat noch benötigt ? Es wird ja später ein Let´s Encrypt Zertifikat erstellt. Oder benötiget wir beide Zertis ?
    Ich musste vor allen Befehlen den sudo setzten, sonst hatte ich keine Rechte auf die Conf bzw Dateien. Mein User ist in der sudoers und www-data Gruppe enthalten

    Danke und Gruß

    Michael

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.