Implementierung von SSL Perfect Forward Secrecy in NGINX Webservern

Dieses Tutorial beschreibt den Prozess der Implementierung von Forward Secrecy oder oft auch Perfect Forward Secrecy genannt mit dem NGINX-Webserver auf Debian- und Ubuntu-Systemen. Der Prozess kann leicht an andere GNU/Linux-Systeme angepasst werden.

Kurz gesagt, Perfect Forward Secrecy stellt sicher: “… dass die Kompromittierung einer Nachricht nicht zur Kompromittierung anderer führen kann, und dass es auch nicht einen einzigen geheimen Wert gibt, der zur Kompromittierung mehrerer Nachrichten führen kann.” Für weitere Informationen siehe HIER

Als Anfang 2014 die Heartbleed-Schwachstelle in openSSL aufgedeckt wurde, wurde immer deutlicher, dass PFS ein Muss für jedes System ist, das SSL/TLS in einer ernsthaften Funktion einsetzt.

Bitte unterstützt meine Arbeit



Lasst uns starten und PFS (Perfect Forward Secrecy) implementieren.

Zuerst müssen wir ins NGINX Config Verzeichnis:

cd /etc/nginx/


Wir müssen Diffie-Hellman-Parameter erzeugen, die ausreichend stark sind. Einige argumentieren, dass 4096 Bits zu viel sind und die CPU des Systems übermäßig belasten, aber bei der heutigen Rechenleistung scheint dies ein lohnender Kompromiss zu sein.

openssl dhparam -out dh4096.pem 4096


Dieser Vorgang kann einige Zeit in Anspruch nehmen (5 – 15 Minuten)


Es ist praktisch, diese Konfigurationsdatei, die für die jeweilige Aufgabe spezifisch ist, in einer Include-Datei aufzuteilen; das macht es einfacher, PFS über eine große Anzahl von Systemen zu implementieren.

Wir erstellen also mit einem beliebigen Editor eine neue Datei:

/etc/nginx/perfect-forward-secrecy.conf


Nun fürgen wir das folgende in die neue Datei ein:

ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 \
EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 \
EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !MEDIUM";
ssl_dhparam dh4096.pem;


Nun müssen wir noch die nginx.conf bearbeiten (üblicherweise /etc/nginx/nginx.conf) und fügen folgende Zeilen am ENDE der Datei ein, jedoch INNERHALB des http {} Blocks:

# This MUST come AFTER the lines that includes .../sites-enabled/*, otherwise SSLv3 support may be re-enabled accidentally.
include perfect-forward-secrecy.conf;

Nun starten wir noch den Nginx Dienst neu:

service nginx restart

Jetzt können wir HIER testen ob PFS nun aktiv ist

Sollte der Test einen Fehler anzeigen wie zb: Session resumption (caching) No (IDs assigned but not accepted) dann müssen wir noch etwas zu unserer nginx.conf im oberen Bereich des http {} Blocks hinzufügen:

ssl_session_cache shared:SSL:10m;


Jetzt müssen wir erneut Nginx neustarten:

service nginx restart

Nun sollte der Test fehlerfrei durchführbar sein, selbst wenn der Fehler weiterhin erscheint mindert dieser nicht das Ergebnis.

Das wars auch schon.

Related posts

CWP – Roundcube auf Version 1.5.6 updaten

CWP – MariaDB auf eine neue Version updaten

Verbessern des Nachrichtenflusses mit MTA-STS

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Read More