nginx mit Let’s Encrypt Zertifikat und HTTP/2

Ich habe das Glück, als BETA Tester für Let’s Encrypt genommen worden zu sein. Ich konnte also ein gültiges Zertifikat erstellen und installieren.

Installation unter Debian Jessie

apt-get update && apt-get install git
git installieren, wer es noch nicht hat
git clone https://github.com/letsencrypt/letsencrypt
Aktuellen Let´s Encrypt Client besorgen (später soll es einmal Debian Packete geben).
cd letsencrypt/
Wechsel in das Client Verzeichnis
/etc/init.d/nginx stop
Stoppen von nginx, Ports 80 und 443 (Firewall Freigabe nicht vergessen) werden für die Authentifizierung benötigt.
./letsencrypt-auto --agree-dev-preview --server https://acme-v01.api.letsencrypt.org/directory auth
Zertifikat anfordern, Abfrage bestätigen und Domainname eingeben (hier ononon.de).
openssl dhparam -out /etc/nginx/dhparam.pem 2048
Eigene DHParam Datei erstellen, erhöht die Sicherheit der SSL Verschlüsselung.

nginx Konfiguration anpassen:

listen 443 ssl http2;
ssl_certificate /etc/letsencrypt/live/ononon.de/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ononon.de/privkey.pem;
ssl_session_timeout 5m;
ssl_session_cache shared:SSL:5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK';
ssl_prefer_server_ciphers on;
ssl_dhparam /etc/nginx/dhparam.pem;
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/letsencrypt/live/ononon.de/fullchain.pem;

Domainname und Pfad müssen natürlich angepasst werden. Pfad sollte auf den letsencrypt Pfad gesetzt bleiben, so bleibt auch bei der Zertifikatsverlängerung alles gleich. http2 hinter listen benötigt mindestens nginx Version 1.9.5. Die Ciphers sollten immer auf Aktualität geprüft werden. Die Konfiguration hat auf SSL Server Test ein A+ gebraucht.