Nginx: OCSP stapling aktivieren

Home / Network / Nginx: OCSP stapling aktivieren
NGINX

Wer mit SSL Zertifikaten arbeitet weiß auch das diese irgendwann ablaufen oder für ungültig erklärt werden können. Damit dies auch jeder Browser und jedes Betriebsystem mitbekommt, wurde die CRL (certificate revocation list; Zertifikatsperrliste) erfunden. Leider werden diese Sperrlisten von den Betriebssystem nur in bestimmten Zeitabständen abgerufen. Wird ein Zertifikat heute für ungültig erklärt und die Betriebssysteme haben es noch nicht mitbekommen, weil sie die CRL von der CA erst morgen aktualisieren werden, bleibt das Zertifikat bis dahin gültig.
Aus diesem Grund wurde OCSP (Online Certificate Status Protocol) entwickelt. Durch das Netzwerkprotokoll ist es Clients möglich durch eine Anfrage beim OCSP-Responder (meist ein Server vom Root CA Betreiber; URL steht im Zertifikat) nachzufragen ob das Zertifikat noch gültig ist oder nicht. So bekommt der Client die aktuellen Sperrinformationen geliefert.
OCSP stapling lässt dich bei Nginx mit folgenden Zeilen in der „nginx.conf“ aktivieren:

# aktiviert OCSP stapling
ssl_stapling on;
# aktiviert die Überprüfung
ssl_stapling_verify on;
# Trusted Certificate
ssl_trusted_certificate /etc/nginx/ssl/alphassl.pem;

Sollte man mehrere Zertifikate auf dem Webserver zu Verfügung stellen, dann sollte man die Einstellungen in die entsprechende „http“-Konfiguration schreiben.
Die Datei für „ssl_trusted_certificate“ muss man manuell im PEM-Format erstellen. Dabei besteht die Datei aus den Zertifikaten des jeweiligen Anbieters, welche man auf deren Website bekommt. In einigen Fällen werden diese Zertifikate auch bei der Beauftragung des SSL-Zertifikats mitgeschickt. Wichtig: Damit die Überprüfung auch wirklich funktioniert müssen in die „ssl_trusted_certificate“ Datei das Root-Zertifikat und alle Intermediate-Zertifikate rein!

In meinem Fall „AlphaSSL“ aus dem „GlobalSign Root CA“ Zertifikat und dem Intermediate-Zertifikat „AlphaSSL Intermediate CA“. Die erstellte Datei „alphassl.pem“ würde dann so aussehen: alphassl.pem

Da ich auch noch ein Zertifikat von RapidSSL besitze, würde die passende „rapidssl.pem“ für das Zertifikat so aussehen: rapidssl.pem

Diese ist etwas länger, denn RapidSSL hat neben dem „RapidSSL Root CA“ zwei „RapidSSL Enterprise Intermediate CA“ Zertifikate.
Sofern man Zugriff auf eine OpenSSL-Konsole hat, kann man OCSP mit folgender Zeile überprüfen:

openssl s_client -connect <meinedomain>:443 -tls1 -tlsextdebug -status

Das <meinedomain> muss natürlich durch Eure Domain ersetzt werden. Wenn alles funktioniert hat dann sollte die Antwort wie folgt aussehen:

OCSP response:
======================================
OCSP Response Data:
OCSP Response Status: successful (0x0)
Response Type: Basic OCSP Response
Version: 1 (0x0)
Responder Id: F84F65265BD5486C472A80D26689771C56C44E29
Produced At: Sep 28 09:25:05 2014 GMT
Responses:
Certificate ID:
Hash Algorithm: sha1
Issuer Name Hash: 84D56BF8098BD307B766D8E1EBAD6596AA6B6761
Issuer Key Hash: F5CDD53C0850F96A4F3AB797DA5683E669D268F7
Serial Number: 11212CF8CC28EF6858E3FBBBF8ECD25B0460
Cert Status: good
This Update: Sep 28 09:25:05 2014 GMT
Next Update: Sep 29 09:25:05 2014 GMT

Wenn es nicht funktioniert, dann bekommt man ein „OCSP response: no response sent“ angezeigt.

Links: Qualys SSL Labs – SSL Server Test | OCSP Stapling in Firefox