Cos'è OCSP Stapling
OCSP Stapling è una tecnica per verificare lo stato di revoca di un certificato SSL/TLS senza che il client debba contattare direttamente la Certification Authority. Il server include ("staples", letteralmente "pinza") la risposta OCSP firmata dalla CA dentro l'handshake TLS, consegnandola al browser insieme al certificato.
Come funziona OCSP tradizionale
Quando il browser apre una connessione HTTPS, deve verificare se il certificato del server è stato revocato. Esistono due meccanismi storici:
- CRL (Certificate Revocation List): il browser scarica una lista completa di certificati revocati. Lista pesante, aggiornata raramente
- OCSP (Online Certificate Status Protocol): il browser interroga in tempo reale un'endpoint della CA chiedendo lo stato di quel singolo certificato
Entrambi hanno problemi: la CRL è obsoleta, l'OCSP classico aggiunge latenza (round trip extra alla CA) e mina la privacy (la CA sa quali siti l'utente visita).
La soluzione: stapling
Con OCSP Stapling il SERVER si fa carico della query OCSP, ottiene una risposta firmata dalla CA con scadenza tipica di 24-72 ore, e la include nell'handshake TLS verso il client. Il browser legge la risposta, verifica la firma della CA, controlla la freschezza e procede senza dover contattare nessuno. Tutto in un'unica connessione.
Vantaggi pratici
- Performance: nessun round trip extra del client verso la CA, handshake più rapido
- Privacy: la CA non vede quali utenti visitano il sito
- Affidabilità: se l'endpoint OCSP della CA è offline, il client non resta in attesa; il server ha già la risposta cached
- Scalabilità: una richiesta OCSP fatta dal server serve migliaia di client
- Required per EV moderni: alcune policy CA/Browser Forum richiedono stapling per la barra EV
Configurazione su Nginx
Nel blocco server:
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /path/to/ca-chain.pem;
resolver 1.1.1.1 8.8.8.8 valid=300s;
resolver_timeout 5s;
Il resolver serve a Nginx per risolvere il nome dell'OCSP responder; la ssl_trusted_certificate contiene il bundle CA che firma la risposta. Senza queste direttive lo stapling resta inattivo.
Configurazione su Apache
In httpd.conf, fuori dai VirtualHost:
SSLUseStapling on
SSLStaplingCache shmcb:/var/log/ocsp(128000)
E dentro il VirtualHost:
SSLStaplingResponderTimeout 5
SSLStaplingReturnResponderErrors off
OCSP Must-Staple
Un certificato può essere emesso con la flag Must-Staple (X.509 extension TLS Feature con valore status_request). I browser che vedono questa flag rifiutano la connessione se lo stapling non è presente, eliminando l'ultima possibilità per un'attaccante di nascondere uno stato di revoca. La flag si richiede in fase di CSR e va attivata solo dopo aver verificato che il server fornisca stapling stabilmente.
Verifica del setup
Test rapido con OpenSSL:
openssl s_client -connect tuosito.it:443 -status -tlsextdebug
Cerca nella risposta la sezione OCSP Response Data con Response Status: successful. Se è presente, lo stapling funziona. SSL Labs lo evidenzia anche nel report Server Test sotto la voce OCSP stapling.
Quando ha senso disattivarlo
Praticamente mai. L'unico caso valido è un server completamente air-gapped che non può raggiungere l'OCSP responder della CA. In tutti gli altri scenari OCSP Stapling è un win per performance, privacy e affidabilità.
Hai bisogno di aiuto?
Se vuoi gestione SSL dal team di G Tech Group, scrivici tramite il modulo di contatto.