OCSP Stapling Yes

wall < "OCSP – Online Certificate Status Protocol"

Broadcast message from spillerm@unixe.de (pts/1) (Do Aug 06 10:44:53 2015):
4
Diesen Beitrag schrieb ich vor 3 Jahren. Behalte das beim Lesen bitte im Hinterkopf.

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
## /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

## /etc/apache2/mods-enabled/ssl.conf
...
  SSLCompression off
  SSLUseStapling on
  SSLStaplingCache shmcb:${APACHE_RUN_DIR}/ocsp(512000)
  SSLStaplingReturnResponderErrors off
  SSLStaplingResponderTimeout 5
...

OCSP Stapling testen

OCSP Stapling YesDu 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
    ...

UnterschriftSollte 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.

4