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:
- Der Client liest die Authority Information Access (AIA)-Erweiterung aus dem Zertifikat, um die OCSP-Responder-URL zu finden.
- Der Client sendet eine OCSP-Anfrage mit der Seriennummer des Zertifikats.
- 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:
| OCSP | CRL | |
|---|---|---|
| Aktualität | Echtzeit-Status | Periodische Aktualisierungen |
| Bandbreite | Kleine Antworten pro Zertifikat | Vollständige Liste aller widerrufenen Zertifikate |
| Verfügbarkeit | Erfordert Online-Responder | Kann zwischengespeichert/verteilt werden |
| Datenschutz | Responder sieht, welche Zerts geprüft werden | Client 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