OCSP

Online Certificate Status Protocol (OCSP) umožňuje klientům kontrolovat stav odvolání certifikátu v reálném čase, bez stahování celé CRL. Certman poskytuje veřejný OCSP respondér pro každou CA, kterou vytvoříte.

Jak to funguje

Když klient (prohlížeč, aplikace nebo TLS knihovna) narazí na certifikát vydaný vaší CA, může se dotázat OCSP respondéru a ověřit, že certifikát nebyl odvolán:

  1. Klient přečte rozšíření Authority Information Access (AIA) z certifikátu a najde URL OCSP respondéru.
  2. Klient odešle OCSP požadavek obsahující sériové číslo certifikátu.
  3. Respondér odpoví podepsanou odpovědí uvádějící stav certifikátu: good, revoked nebo unknown.

URL OCSP respondéru

OCSP respondér každé CA je veřejně přístupný na:

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

Tato URL je automaticky vložena do rozšíření AIA všech certifikátů a CA vydaných Certmanem, takže klienti ji mohou objevit bez jakékoli manuální konfigurace.

Metody požadavku

OCSP respondér podporuje dvě metody definované v RFC 6960:

  • POST — Odešlete DER kódovaný OCSP požadavek jako tělo požadavku s Content-Type: application/ocsp-request
  • GET — Připojte base64url kódovaný DER požadavek k cestě URL
# POST metoda
curl -X POST https://ocsp.certman.app/{ca_id} \
  -H "Content-Type: application/ocsp-request" \
  --data-binary @request.der

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

Odpověď

OCSP odpověď je vrácena s Content-Type: application/ocsp-response a obsahuje hlavičky pro cachování (Cache-Control: public, max-age=3600) pro snížení zátěže respondéru.

Každá odpověď obsahuje stav pro dotazované sériové číslo certifikátu:

  • Good — Certifikát je platný a nebyl odvolán
  • Revoked — Certifikát byl odvolán, obsahuje čas odvolání
  • Unknown — Sériové číslo certifikátu není touto CA rozpoznáno

OCSP vs. CRL

OCSP i CRL slouží stejnému účelu (komunikace stavu odvolání), ale liší se v přístupu:

OCSPCRL
AktuálnostStav v reálném časePeriodické aktualizace
Šířka pásmaMalé odpovědi na certifikátKompletní seznam všech odvolaných certifikátů
DostupnostVyžaduje online respondérMůže být cachována/distribuována
SoukromíRespondér vidí, které certifikáty jsou kontroloványKlient stahuje kompletní seznam lokálně

Certman podporuje oba mechanismy. Používejte OCSP pro kontroly v reálném čase a CRL jako zálohu nebo pro prostředí s omezenou konektivitou.

Heslem chráněné CA

OCSP funguje automaticky dál, i když je CA chráněna heslem. Takto to funguje:

Když vytvoříte CA s ochranou heslem, Certman vygeneruje samostatný OCSP podpisový certifikát specificky pro podepisování OCSP odpovědí. Tento OCSP certifikát:

  • Je podepsán vaší CA v době vytvoření (když poskytnete heslo)
  • Má rozšířené použití klíče id-kp-OCSPSigning, které ho autorizuje k podepisování OCSP odpovědí jménem CA
  • Je uložen na serveru se standardním šifrováním (není chráněn heslem)
  • Má stejnou dobu platnosti jako samotná CA

Tento design zajišťuje, že OCSP odpovědi mohou být generovány automaticky bez nutnosti poskytovat heslo CA pro každou kontrolu stavu. OCSP podpisový certifikát je standardní PKI vzor (RFC 6960), kde CA deleguje podepisování OCSP odpovědí na určeného respondéra.

Bezpečnostní poznámka: Ačkoli je OCSP podpisový certifikát uložen na serveru, může pouze podepisovat OCSP odpovědi — nemůže vydávat nové certifikáty ani provádět jiné CA operace. Soukromý klíč vaší CA zůstává chráněn vaším heslem pro všechny operace vydávání a odvolávání certifikátů.

Ověření pomocí OpenSSL

Můžete otestovat OCSP stav certifikátu pomocí OpenSSL:

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