This is an old revision of the document!
OCSP Stapling
Online Certificate Status Protocol (OCSP) was created as an alternative to the Certificate Revocation List (CRL) protocol. Both protocols are used to check whether an SSL Certificate has been revoked. The CRL protocol requires the browser to spend time downloading and then searching a list for certificate information. With OCSP, the browser simply posts a query and receives a response from an OCSP responder (a Certificate Authority’s (CA's) server that specifically listens for and responds to OCSP requests) about the revocation status of a certificate.
OCSP stapling can be used to enhance the OCSP protocol by letting the webhosting site be more proactive in improving the client (browsing) experience. OCSP stapling allows the certificate presenter (i.e. web server) to query the OCSP responder directly and then cache the response. This securely-cached response is then delivered with the TLS/SSL handshake via the Certificate Status Request extension response, ensuring that the browser gets the same response performance for the certificate status as it does for the website content.
LSWS version support
LSWS Version | Through Apache config | LSWS native configure |
---|---|---|
5.1+ | v | v |
4.2.x or 5.0.x | x | v |
4.2- | x | x |
Requirements
- Non-self-signed SSL Certificate
- Port 443 enabled for https
- If using Apache config, HTTPD Server 2.3.3+
Setup through Apache httpd.conf for 5.1.x and above
Follow the same method as Apache through httpd.conf. See these external references for more information: digicert.com or globalsign.com
For cPanel
OCSP enabled by default on latest WHM/cPanel
The latest cpanel/WHM server has enable OCSP automatically at /etc/apache2/conf/httpd.conf hence you don't need to do any extra work on it.
<IfModule socache_shmcb_module> SSLUseStapling On SSLStaplingCache shmcb:/run/apache2/stapling_cache_shmcb(256000) # Prevent browsers from failing if an OCSP server is temporarily broken. SSLStaplingReturnResponderErrors off SSLStaplingErrorCacheTimeout 60 SSLStaplingFakeTryLater off SSLStaplingResponderTimeout 3 SSLSessionCache shmcb:/run/apache2/ssl_gcache_data_shmcb(1024000) </IfModule>
Earlier version of cPanel/WHM
For an earlier version of cPanel/WHM, you can manually add SSLStaplingCache and SSLUseStapling on directives to apache configuration.
Add the following lines to:
- For EA3:
/usr/local/apache/conf/includes/pre_main_global.conf
- For EA4:
/etc/apache2/conf.d/includes/pre_main_global.conf
<IfModule Litespeed> SSLStaplingCache shmcb:/tmp/stapling_cache(128000) </IfModule>
Edit your site’s VirtualHost SSL configuration.
Add the following lines to:
- For EA3:
/usr/local/apache/conf/userdata/lscache_vhosts.conf
- For EA4:
/etc/apache2/conf.d/userdata/lscache_vhosts.conf
(if these directories do not exist, create them).
<IfModule Litespeed> SSLUseStapling on </IfModule>
Apply these changes to all Virtual Hosts by running the following command:
/scripts/ensure_vhost_includes --all-users
For Plesk
Plesk server has not enabled OCSP by default yet and still feature request stage at the time of this writing.
As a workaround, create a file named lsocsp.conf
in the following directory depending upon your system:
- For CentOS, the
/etc/httpd/conf.d/
directory - For Debian, the
/etc/apache2/conf.d/
directory - For Ubuntu, Debian 11, the
/etc/apache2/conf-enabled
directory
This lsocsp.conf
file should contain the following:
<IfModule Litespeed> SSLStaplingCache shmcb:/var/run/ocsp(128000) SSLUseStapling on </IfModule>
Then restart LSWS.
Setup through LSWS native configuration
Set up a secure listener
Add a listener (WebAdmin console > Configuration > Listeners > Add).
Make sure you click Yes
under the Secure setting. (The other settings should be customized to listen to the correct IP and port for the virtual hosts this listener will be mapping to.)
Set up certificate files
Open up the listener again (View/Edit).
Under the SSL tab, enter the paths and locations for your certificates and key files.
Set the OCSP values
To set up OCSP stapling, you must set Enable OCSP Stapling to Yes
. It is also better to put the address of your OCSP responder in the OCSP Responder field (though the server may be able to find it in your CA certificate). Check with your CA for your OCSP responder's address.
Graceful restart
Click the Apply Changes link to execute a graceful restart and apply your changes.
Did it work?
Method 1:
Check in /dev/shm/lsws/ocspcache/
for newer version or $SERVER_ROOT/tmp/ocspcache/
for earlier version. If a file has been created there, then your OCSP stapling is working. If not, check your error logs for what went wrong.
/dev/shm/lsws/ocspcache>ls -alt | head; date total 44 drwxr-x--- 4 nobody nobody 400 Jul 13 05:16 .. drwx------ 2 nobody nobody 260 Jul 13 00:07 . -rw------- 1 nobody nobody 472 Jul 13 00:07 Reacb027c3975b5e2d620bbb279008dad.rsp -rw------- 1 nobody nobody 472 Jul 12 11:20 R46e10f27f45529e132faf1c78ff62725.rsp -rw------- 1 nobody nobody 471 Jul 10 18:02 Re3a1d7181c38b68e517f80cbf4bd4e4e.rsp -rw------- 1 nobody nobody 471 Jul 10 15:14 R053b55e8211ae3d02580bdd50b5b00b8.rsp -rw------- 1 nobody nobody 471 Jul 10 14:09 Rf06839ee82080282fda44cd5633b3538.rsp -rw------- 1 nobody nobody 471 Jul 10 13:33 Raf1ac6061835bfb1b4df9313b3b8e234.rsp -rw------- 1 nobody nobody 472 Jul 8 14:58 R53fb6a7fcc1d8fd11c10a5b6c4ad15fc.rsp Mon Jul 13 06:12:33 UTC 2020
Method 2:
Use the openssl
command:
openssl s_client -connect Your_Domain:443 -status | grep "OCSP Response Status"
If OCSP stapling is working, it will show ok
. Then check OCSP Response Status: should be successful
in OCSP Response Data section
For example:
openssl s_client -connect litespeedtech.com:443 -status | grep "OCSP Response Status" depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3 verify return:1 depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3 verify return:1 depth=0 CN = *.litespeedtech.com verify return:1 OCSP Response Status: successful (0x0)
Method 3:
- then search for “OCSP stapling”.
For example,
https://www.ssllabs.com/ssltest/analyze.html?d=litespeedtech.com OCSP stapling Yes
Cached OCSP response
OCSP response is cached for 1-day. If you change your SSL certificate provider and see a cached OCSP response for a domain, you can safely remove the cache files under OCSP cache folder, but not the folder itself.