Communardo Software GmbH, Kleiststraße 10 a, D-01129 Dresden

OCSP-Endpoint mit OpenSSL

In einem aktu­el­len Projekt nut­zen wir eine eigene kleine CA auf Basis von OpenSSL, um Zertifikate für Entwicklungs- und Testumgebungen auszustellen.

Zertifikate sol­len jetzt per CRL und OCSP vali­diert wer­den. CRLs las­sen sich mit dem Kommando
openssl ca -gencrl ...
gene­rie­ren und dann an die Clients verteilen.

OCSP ist ein akti­ves Protokoll und benö­tigt dafür einen Server und einen pas­sen­den Client. In der Regel nut­zen OCSP-Server das HTTP-Protokoll für den Transport der OCSP-Anfragen und -Antworten.

In einer Java-Anwendung kann man für den Client z.B. die dafür gedach­ten Klassen aus BouncyCastle verwenden.

Einen Server und Client auf Kommandozeilenebene bringt OpenSSL in Form des ocsp-Unterkommandos mit. Der Server nutzt die index.txt der OpenSSL CA und kann fol­gen­der­ma­ßen gestar­tet werden:

openssl ocsp -index index.txt -CA ca.cert.pem -rsigner ca.cert.pem -rkey private/ca.key.pem -port 8080 -nmin 10

In die­sem Fall wird für den OCSP-Responder und die CA das glei­che Zertifikat ver­wen­det, bei einer ech­ten CA würde man ein dedi­zier­tes Zertifikat/Schlüssel-Paar für den OCSP-Responder erzeu­gen. Der obige Aufruf star­tet einen OCSP/HTTP-Responder auf Port 8080 und schaut aller 10 Minuten in der index.txt, ob sich etwas am Widerrufsstatus der von der CA unter­schrie­be­nen Zertifikate geän­dert hat.

Testen kann man den Responder z.B. mit fol­gen­dem Aufruf:

openssl ocsp -issuer ca.cert.pem -cert cert_to_test.crt -url http://cahost:8080/ -resp_text

Related Posts

Pin It on Pinterest