Nginx - Perfect Forward Secrecy inschakelen

Om Perfect Forward Secrecy te activeren voor de Nginx webserver 1.0.6 en hoger is het nodig om de configuratie zo aan te passen dat de juiste cipher suites worden aangeboden.

Nginx configuratie

Onderstaande aanpassingen worden gemaakt in de configuratie van de website Server Blocks, waarvoor het SSL protocol staat ingeschakeld. Deze configuratie bestanden staan normaal in /etc/nginx/sites-enabled/. Met onderstaande regels geven we aan dat er geen gebruik van SSLv2 en SSLv3 wordt gemaakt, en dat de webbrowser de aangeboden ciphers moet respecteren.

server {
listen 443 ssl;
...
ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
ssl_prefer_server_ciphers on;
...
}

Daarnaast wordt voor de SSLCipherSuite parameter aangegeven welke voorkeur is aangegeven. Hieronder volgen 3 mogelijkheden, met elk een uitleg.

1. Configuratie met voorkeur voor GCM (Galois Counter Mode) suites (beschermd tegen timing attacks) en RC4 (RC4 is veilig tegen BEAST). Voor de snelheid is het gebruik van ECDHE suites aan te raden.

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";

2. Configuratie met voorkeur voor GCM (Galois Counter Mode) suites (beschermd tegen timing attacks) en geen RC4. Voor de snelheid is het gebruik van ECDHE suites aan te raden.

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 !RC4";

3. Configuratie met voorkeur voor GCM (Galois Counter Mode) suites (beschermd tegen timing attacks) en RC4 als laatste optie, wanneer er verouderde browsers worden gebruikt. Voor de snelheid is het gebruik van ECDHE suites aan te raden.

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 +RC4 RC4";

Nginx webserver testen

Na het opnemen van deze configuratieregels in de website configuratie wordt deze getest door het uitvoeren van onderstaand commando:

sudo nginx -t

Nginx webserver herstarten

En wanneer er geen fouten worden gemeld kan de Nginx webserver worden herstart met onderstaand commando:

sudo service nginx restart
point up