nginx: Sichere SSL-Verbindung aktivieren

Warning: This page is a part of an archive now and will be removed in the future.

Die grundsätzliche Konfiguration von SSL ist bei einem Webserver nicht sehr schwer. Um diese soll es hier jedoch auch gar nicht gehen. Viel mehr geht es darum, diese Verbindung zu optimieren und dadurch zusätzlich abzusichern, denn einigen Berichten zufolge kann die NSA die standardmäßig genutzte Verschlüsselungsmethode RC4 bei SSL-Verbindung in Echtzeit entschlüsseln.

Doch nicht nur das: Auch gelten TLS 1.0 und TLS 1.1 seit über einem Jahr als unsicher, so dass man den aktuellsten Standard, TLS 1.2, zumindest als unterstützt angeben sollte.

Letzteres funktioniert recht einfach:
Im Konfigurationsblock von SSL in der nginx.conf muss einfach die Variable ssl_protocols angepasst werden:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
Wer wirklich nur die aktuellste Version 1.2 unterstützen will, sollte bedenken, dass er damit nur die neuesten Browser unterstützt, genauer gesagt:
Google Chrome - ab v29
Internet Explorer - ab v11
Mozilla Firefox - ab v24
Opera Browser - ab v16
Safari Browser - ab v7

Um die Verschlüsselungen einzugrenzen, so dass z.B. RC4 und andere unsichere Methoden hier nicht mehr genutzt werden, benötigt man die Variable ssl_ciphers. Ich habe mit dieser Angabe gute Erfahrungen gemacht:
ssl_ciphers ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:!RC4:HIGH:!MD5:!aNULL:!EDH;

Damit werden folgende Verschlüsselungsmethoden unterstützt:
DHE-RSA-AES256-SHA
DHE-DSS-AES256-SHA
AES256-SHA
DHE-RSA-AES128-SHA
DHE-DSS-AES128-SHA
AES128-SHA
EDH-RSA-DES-CBC3-SHA
EDH-DSS-DES-CBC3-SHA
DES-CBC3-SHA

Damit diese Einstellung aber auch vom Browser genutzt wird, muss man noch folgende Zeile in der Konfiguration angeben:
ssl_prefer_server_ciphers on;

Wer sich hier noch in puncto Verschlüsselungsmethoden weiterbilden möchte, kann das z.B. hier tun:
kuketz-blog.de/nsa-abhoersiche…ng-fuer-apache-und-nginx/

Ansonsten:
Nach den Änderungen nginx neu starten und man ist etwas sicherer. Ein kleiner Wermutstropfen ist jedoch, dass TLS 1.1 und TLS 1.2 erst mit openssl 1.0.1 verfügbar sind. Wer demnach die offiziellen Quellen auf seinem Debian Squeeze nutzt, kann diese Verbindungen nicht aktivieren.
About the Author
Ich bin Webentwickler in Stuttgart und administriere Server seit vielen Jahren. In diesem Blog erstelle ich hauptsächlich Tutorials für andere Webentwickler, Webdesigner und Serveradministratoren.
-------------------------------------------------------------------------------------------------------------------------------------
I’m a web developer in Stuttgart, Germany, and server administrator since many years. This blog mainly contains a tutorial set for other web developer, web designer and server administrators.

684 times read

Comments 0

There are not any items at the moment.

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.