NGINX – sichere SSL/TLS Konfiguration mit Perfect Forward Secrecy (PFS) und A+ Wertung von Qualys SSL Labs

nginx-a+-ssllabs
Qualys SSL Labs A+ Bewertung

In diesem Artikel wird die Konfiguration von SSL/TLS von NGINX beschreiben. Voraussetzung ist eine lauffähige aktuelle NGINX-Installation. Eine Anleitung wie das unter CentOS 7 funktioniert findet man in dem Artikel CentOS 7 – NGINX aus dem NGINX-Repository installieren.

Weiterhin benötigten wir ein gültiges Zertifikat, dazu gehören der Key, das Zertifikat und eventuell ein CA-Bundle.

Konfiguration NGNIX mit SSL/TLS

Dazu erweitern wit unsere Konfiguration um einen weiteren vHost der auf Port 443 lauscht. Für diesen aktivieren wir ssl und optional spdy.

Weitere Infos zu spdy findet man auf der Projektseite von spdy. Es spricht eigentlich nichts dagegen sdpy zu verwenden. In wie weit sich dies in irgend einer Form auf das Ranking der Webseite auswirkt kann ich nicht sagen.

Die Pfade zu den Parametern ssl_certificate und ssl_certificate_key müssen natürlich passen.

NGINX CA-Chain einrichten

Falls noch ein CA_Bundle vorliegt muss dies noch in die Datei vom ssl_certificate eingefügt werden. Den Parameter SSLCACertificateFile wie bei Apaches httpd gibt es unter NGINX nicht.

Die Datei domain.tld.pem beinhaltet also das eigentliche Zertifikat und das Zertifikat-Bundle der CA.

Nach dem Neustart von NGINX ist SSL/TLS lauffähig.

NGINX und Perfect Forward Secrecy (PFS) aktivieren

Wie Perfect Forward Secrecy genau funktioniert werde ich an dieser Stelle nicht weiter erläutern. Dazu gibt es viele detaillierte Artikel im Internet. Eine kurze Erklärung gibt es auf der Wikipedia-Seite.

Zuerst benötigen wir eine Datei mit dem Diffie-Hellman Key. Diese erzeugt man wie folgt:

Das kann je nach Leistung des Systems ein paar Minuten dauern.

Anschliessend erstellen wir eine Datei in dieser wir alle Konfigurations-Parameter für Perfect Forward Secrecy und noch ein paar zusätzliche add_header-Anweisungen einfügen.

In diese Datei fügen wir dann folgende Zeilen ein.

Die zusätzlichen Header aktivieren HTTP Strict Transport Security (HSTS) und verhindern Clickjacking.

Diese Datei müssen wir nun noch in unsere NGINX-Konfiguration einbinden. In diesen Fall entscheide ich mich für das globale Einbinden der Datei. So sind diese Einstellung für alle meine vHost aktiv die SSL/TLS verwenden.

Dazu editieren wir die Datei /etc/nginx/nginx.conf.

Im untern Bereich fügen wir dann das include der Datei Perfect-Forward-Secrecy-Datei ein.

Nach einen Neustart von NGINX sollte nun FPS aktiv sein.

Nun kann man unter https://www.ssllabs.com/ssltest/ seine Einstellungen testen. Man sollten diesen Test in regelmäßigen Abständen durchführen. Es kann sein, dass einige Cipher als unsicher deklariert werden. Diese müssen dann aus der Konfiguration entfernt werden.

Es loht wie immer ein Blick in die Dokumentation von NGINX. Dort werden die Parameter nochmals genauer erklärt.

Eine Antwort auf „NGINX – sichere SSL/TLS Konfiguration mit Perfect Forward Secrecy (PFS) und A+ Wertung von Qualys SSL Labs“

Schreibe einen Kommentar

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.