Kort svar

OCSP stapling lader webserveren selv hente et signeret, tidsstemplet revokeringssvar fra CA'en på forhånd og vedhæfte ("staple") det til TLS-handshaken. Klienten får dermed beviset for at certifikatet ikke er tilbagekaldt direkte fra serveren — uden selv at kontakte CA'en. Det er både hurtigere (intet ekstra opslag undervejs) og mere privat (CA'en ser ikke hvem der besøger sitet). Beviset er friskt fordi serveren fornyer det løbende.

Baggrund: hvordan tjekkes tilbagekaldelse normalt?

Et certifikat kan tilbagekaldes før udløb — fx hvis den private nøgle lækker. For at vide det skal klienten tjekke certifikatets status. Den klassiske måde er OCSP (Online Certificate Status Protocol): browseren spørger CA'ens OCSP-server "er dette certifikat stadig gyldigt?". Det har to problemer, som vi også berører i OCSP-tilbagekaldelse forklaret: det er et ekstra netværksopslag der forsinker forbindelsen, og CA'en får at vide hvilket site du er ved at besøge.

Sådan virker stapling

Stapling flytter opslaget fra klienten til serveren:

  1. Serveren spørger selv jævnligt CA'ens OCSP-server om sit eget certifikats status.
  2. CA'en svarer med et signeret, tidsstemplet OCSP-svar, gyldigt i en periode (typisk timer til dage).
  3. Serveren cacher svaret og vedhæfter det til hver TLS-handshake i en extension.
  4. Klienten verificerer CA-signaturen på det vedhæftede svar — og behøver ikke selv kontakte CA'en.

Fordi svaret er signeret af CA'en, kan serveren ikke forfalske det. Og fordi det er tidsstemplet og gyldigt i kun kort tid, er det reelt friskt. Hele handshaken hvori svaret leveres gennemgås i TLS handshake forklaret.

De to gevinster

  • Performance: Klienten slipper for et ekstra round-trip til CA'ens (ofte langsomme eller fjerne) OCSP-server. Statussen kommer med i handshaken den allerede laver.
  • Privatliv: Uden stapling fortæller hvert OCSP-opslag CA'en hvilket site klienten er ved at besøge. Med stapling laver serveren opslaget på vegne af alle sine brugere på én gang — CA'en ser kun serveren, ikke de enkelte besøgende.

Sådan slår du det til — nginx

ssl_stapling on;
ssl_stapling_verify on;
# resolver bruges til at slå CA'ens OCSP-host op
resolver 1.1.1.1 8.8.8.8 valid=300s;
ssl_trusted_certificate /etc/ssl/example.com/chain.pem;

ssl_stapling_verify on får nginx til at verificere CA'ens signatur på OCSP-svaret før det vedhæftes, og ssl_trusted_certificate skal pege på kæden så verifikationen kan ske. Genindlæs med nginx -t && systemctl reload nginx.

Verificér at stapling virker

openssl s_client -connect example.com:443 -servername example.com -status 2>/dev/null \
  | grep -A 17 "OCSP response"

Ser du OCSP Response Status: successful og en Cert Status: good, leverer serveren et gyldigt stapled svar. Ser du no response sent, er stapling enten ikke slået til eller endnu ikke varmet op (det første svar caches ved første handshake).

En note om must-staple

Stapling er som standard "best effort": fejler serverens OCSP-opslag, springes beviset bare over. Et certifikat kan dog udstedes med OCSP Must-Staple-flaget, der kræver at et gyldigt stapled svar altid er til stede — ellers afviser klienten forbindelsen. Det øger sikkerheden, men gør serveren afhængig af at staplingen aldrig fejler, og bør derfor kun bruges med solid overvågning.

Hvordan CertControl hjælper

CertControl fremforhandler en rigtig handshake mod hvert endpoint og kan se om serveren leverer et gyldigt stapled OCSP-svar — sammen med certifikatets gyldighed, kædens fuldstændighed og den valgte protokol. Sammen med overvågning af udløb giver det jer et samlet billede af hver enkelt TLS-konfiguration udefra, præcis som en rigtig klient ser den.

Ofte stillede spørgsmål

Hvad er forskellen på OCSP og OCSP stapling?

Ved almindelig OCSP kontakter klienten selv CA'en for at tjekke certifikatets status. Ved stapling henter serveren et signeret svar på forhånd og leverer det i handshaken, så klienten slipper for opslaget — hurtigere og mere privat.

Hvorfor er stapling bedre for privatlivet?

Uden stapling afslører hvert OCSP-opslag for CA'en hvilket site klienten er ved at besøge. Med stapling laver serveren opslaget på vegne af alle sine besøgende på én gang, så CA'en kun ser serveren, ikke de enkelte brugere.

Kan serveren forfalske et stapled OCSP-svar?

Nej. Svaret er signeret af CA'en og tidsstemplet, og klienten verificerer signaturen. Serveren kan kun videregive et ægte, friskt svar fra CA'en — den kan ikke selv lave et.

Hvad er OCSP Must-Staple?

Et flag i certifikatet der kræver at et gyldigt stapled OCSP-svar altid er til stede, ellers afvises forbindelsen. Det øger sikkerheden, men gør serveren afhængig af at staplingen aldrig fejler — brug kun med god overvågning.

Hvordan tester jeg om stapling er slået til?

Kør openssl s_client -connect host:443 -servername host -status og kig efter OCSP Response Status: successful. Ser du "no response sent", er stapling ikke aktivt eller endnu ikke varmet op.