OCSP - Online Certificate Status Protocol
Was ist OCSP?
RFC 6960 beschreibt den Internetstandard des Online Certificate Status Protocol (OCSP): es ermöglicht es dem Client, also beispielsweise deinem Browser, den aktuellen Status eines Zertifikats abzufragen, was höhere Aktualität als die herkömmlichen Certificate Levocation Lists (CRLs) bietet. Die Antwort auf die Frage, ob ein Zertifikat gültig ist, kommt von einem OCSP-Responder, der vom Aussteller des Zertifikats betrieben wird; an dieser Stelle kann, je nach Anbieter, ein Flaschenhals entstehen, wenn dieser Responder Anfragen nämlich langsam beantwortet – das bremst dann den gesamten Seitenaufbau (teilweise leider fühlbar) aus.
OCSP Stapling in nginx
Im ersten Schritt ziehst du dir das ca-bundle.pem von StartSSL und legst es nach /etc/nginx/ssl
. Wichtig ist hierbei, dass du, wenn du mehrere Webseiten per SSL betreibst, das OCSP Stapling entweder für alle diese gültig sein muss oder gar nicht funktioniert – weshalb ich die Einstellungen nicht pro Webseite, sondern global vorgenommen habe.
$ cd /etc/nginx/ssl
$ wget http://www.startssl.com/certs/ca-bundle.pem
## file: "/etc/nginx/mods-enabled/ssl.conf"
## Macht die Abfragen via Google DNS
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=86400;
resolver_timeout 10;
ssl_trusted_certificate /etc/nginx/ssl/ca-bundle.pem;
OCPS Stapling in apache2
## file: "/etc/apache2/mods-enabled/ssl.conf"
...
SSLCompression off
SSLUseStapling on
SSLStaplingCache shmcb:${APACHE_RUN_DIR}/ocsp(512000)
SSLStaplingReturnResponderErrors off
SSLStaplingResponderTimeout 5
...
OCSP Stapling testen
Du hast zwei Möglichkeiten zu überprüfen, ob das OCSP Stapling nach einem Restart deines Webservers sauber funktioniert: auf der Konsole mittels openssl
oder über die SSL Labs Website. Beachte hierbei, dass der erste Testlauf immer fehlschlägt – erst ab dem zweiten Testlauf ist mit einer positiven Antwort zu rechnen!
$ openssl s_client -connect www.spiller.me:443 -tls1 -tlsextdebug -status
CONNECTED(00000003)
...
OCSP response:
======================================
OCSP Response Data:
OCSP Response Status: successful (0x0)
Response Type: Basic OCSP Response
Version: 1 (0x0)
Responder Id: C = IL, O = StartCom Ltd. (Start Commercial Limited), CN = StartCom Class 1 Server OCSP Signer
...
Cert Status: good
...
Sollte es nicht funktionieren, erscheint auch bei jedem weiteren Aufruf der Hinweis OCSP response: no response sent
– dann ist Debugging angesagt, und die Logfiles deines Webservers sind deine erste Anlaufstelle.
Hintergrundbild: Bild genauer anschauen – © Marianne Spiller – Alle Rechte vorbehalten