OCSP

Das Online Certificate Status Protocol (OCSP) ermöglicht es Clients, den Widerrufsstatus eines Zertifikats in Echtzeit zu überprüfen, ohne eine vollständige CRL herunterladen zu müssen. Certman stellt für jede von Ihnen erstellte CA einen öffentlichen OCSP-Responder bereit.

Funktionsweise

Wenn ein Client (Browser, Anwendung oder TLS-Bibliothek) auf ein von Ihrer CA ausgestelltes Zertifikat trifft, kann er den OCSP-Responder abfragen, um zu überprüfen, ob das Zertifikat nicht widerrufen wurde:

  1. Der Client liest die Authority Information Access (AIA)-Erweiterung aus dem Zertifikat, um die OCSP-Responder-URL zu finden.
  2. Der Client sendet eine OCSP-Anfrage mit der Seriennummer des Zertifikats.
  3. Der Responder antwortet mit einer signierten Antwort, die den Zertifikatsstatus angibt: good, revoked oder unknown.

OCSP-Responder-URL

Der OCSP-Responder jeder CA ist öffentlich zugänglich unter:

https://ocsp.certman.app/{ca_id}

Diese URL wird automatisch in die AIA-Erweiterung aller von Certman ausgestellten Zertifikate und CAs eingebettet, sodass Clients sie ohne manuelle Konfiguration finden können.

Anfragemethoden

Der OCSP-Responder unterstützt zwei Methoden gemäß RFC 6960:

  • POST — Senden Sie eine DER-codierte OCSP-Anfrage als Request-Body mit Content-Type: application/ocsp-request
  • GET — Hängen Sie die base64url-codierte DER-Anfrage an den URL-Pfad an
# POST-Methode
curl -X POST https://ocsp.certman.app/{ca_id} \
  -H "Content-Type: application/ocsp-request" \
  --data-binary @request.der

# GET-Methode
curl https://ocsp.certman.app/{ca_id}/{base64url-codierte-DER}

Antwort

Die OCSP-Antwort wird mit Content-Type: application/ocsp-response zurückgegeben und enthält Caching-Header (Cache-Control: public, max-age=3600), um die Last auf dem Responder zu reduzieren.

Jede Antwort enthält den Status für die abgefragte Zertifikatsseriennummer:

  • Good — Das Zertifikat ist gültig und wurde nicht widerrufen
  • Revoked — Das Zertifikat wurde widerrufen, enthält den Widerrufszeitpunkt
  • Unknown — Die Zertifikatsseriennummer wird von dieser CA nicht erkannt

OCSP vs. CRL

Sowohl OCSP als auch CRLs dienen demselben Zweck (Kommunikation des Widerrufsstatus), unterscheiden sich aber im Ansatz:

OCSPCRL
AktualitätEchtzeit-StatusPeriodische Aktualisierungen
BandbreiteKleine Antworten pro ZertifikatVollständige Liste aller widerrufenen Zertifikate
VerfügbarkeitErfordert Online-ResponderKann zwischengespeichert/verteilt werden
DatenschutzResponder sieht, welche Zerts geprüft werdenClient lädt vollständige Liste lokal herunter

Certman unterstützt beide Mechanismen. Verwenden Sie OCSP für Echtzeitprüfungen und CRLs als Fallback oder für Umgebungen mit eingeschränkter Konnektivität.

Passwortgeschützte CAs

OCSP funktioniert automatisch weiter, auch wenn eine CA mit einer Passphrase geschützt ist. So funktioniert es:

Wenn Sie eine CA mit Passphrase-Schutz erstellen, generiert Certman ein separates OCSP-Signaturzertifikat speziell für die Signierung von OCSP-Antworten. Dieses OCSP-Zertifikat:

  • Wird zum Zeitpunkt der Erstellung von Ihrer CA signiert (wenn Sie die Passphrase angeben)
  • Hat die erweiterte Schlüsselverwendung id-kp-OCSPSigning, die es autorisiert, OCSP-Antworten im Namen der CA zu signieren
  • Wird serverseitig mit der Standardverschlüsselung gespeichert (nicht passwortgeschützt)
  • Hat dieselbe Gültigkeitsdauer wie die CA selbst

Dieses Design stellt sicher, dass OCSP-Antworten automatisch generiert werden können, ohne dass Sie die CA-Passphrase für jede Statusprüfung angeben müssen. Das OCSP-Signaturzertifikat ist ein Standard-PKI-Muster (RFC 6960), bei dem eine CA die OCSP-Antwortsignierung an einen designierten Responder delegiert.

Sicherheitshinweis: Obwohl das OCSP-Signaturzertifikat serverseitig gespeichert wird, kann es nur OCSP-Antworten signieren — es kann keine neuen Zertifikate ausstellen oder andere CA-Operationen durchführen. Der private Schlüssel Ihrer CA bleibt durch Ihre Passphrase für alle Zertifikatsausstellungs- und Widerrufsoperationen geschützt.

Überprüfung mit OpenSSL

Sie können den OCSP-Status für ein Zertifikat mit OpenSSL testen:

openssl ocsp \
  -issuer ca.pem \
  -cert certificate.pem \
  -url https://ocsp.certman.app/{ca_id} \
  -resp_text