📖 Scenario: You manage a website using Nginx as the web server. To improve your website's security and speed, you want to enable OCSP stapling. This helps browsers quickly check if your SSL certificate is valid without contacting the certificate authority every time.
🎯 Goal: Configure Nginx to enable OCSP stapling for your SSL-enabled website.
📋 What You'll Learn
Create a basic Nginx server block with SSL enabled
Add configuration directives to enable OCSP stapling
Reload Nginx to apply the changes
Verify that OCSP stapling is enabled
💡 Why This Matters
🌍 Real World
OCSP stapling improves website security and speeds up SSL certificate validation by reducing the need for browsers to contact certificate authorities directly.
💼 Career
Knowing how to enable and verify OCSP stapling is important for DevOps engineers and system administrators managing secure web servers.
Progress0 / 4 steps
1
Create a basic Nginx server block with SSL
Create a file called default.conf with a server block listening on port 443. Use ssl_certificate set to /etc/ssl/certs/example.crt and ssl_certificate_key set to /etc/ssl/private/example.key. Include listen 443 ssl; inside the server block.
Nginx
Hint
Use listen 443 ssl; to enable SSL on port 443. Specify the certificate and key paths exactly as given.
2
Add OCSP stapling configuration directives
Inside the existing server block, add the directives ssl_stapling on; and ssl_stapling_verify on;. Also add resolver 8.8.8.8 8.8.4.4 valid=300s; and resolver_timeout 5s; to enable OCSP stapling and DNS resolution.
Nginx
Hint
Add the four directives exactly as shown inside the server block to enable OCSP stapling.
3
Reload Nginx to apply the configuration
Run the command sudo nginx -t to test the configuration syntax. Then run sudo systemctl reload nginx to reload Nginx with the new settings.
Nginx
Hint
First test the config with sudo nginx -t. If it says syntax is ok, reload Nginx with sudo systemctl reload nginx.
4
Verify OCSP stapling is enabled
Run the command openssl s_client -connect example.com:443 -status and check the output for the line OCSP response: successful to confirm OCSP stapling is working.
Nginx
Hint
Use openssl s_client -connect example.com:443 -status and look for OCSP response: successful in the output.
Practice
(1/5)
1. What is the main purpose of enabling OCSP stapling in nginx?
easy
A. To encrypt the website traffic with a stronger cipher
B. To block unauthorized IP addresses automatically
C. To speed up HTTPS by caching the certificate status
D. To compress website content for faster loading
Solution
Step 1: Understand OCSP stapling concept
OCSP stapling allows the server to cache the certificate status from the certificate authority, reducing the need for clients to query it directly.
Step 2: Identify the main benefit in nginx
This caching speeds up HTTPS connections by reducing latency and improving performance.
Final Answer:
To speed up HTTPS by caching the certificate status -> Option C
Quick Check:
OCSP stapling = speed up HTTPS [OK]
Hint: OCSP stapling caches cert status to speed HTTPS [OK]
Common Mistakes:
Confusing OCSP stapling with encryption methods
Thinking it blocks IP addresses
Assuming it compresses website content
2. Which of the following is the correct nginx directive to enable OCSP stapling?
easy
A. ssl_ocsp on;
B. ssl_stapling_enable true;
C. ssl_ocsp_stapling enable;
D. ssl_stapling on;
Solution
Step 1: Recall nginx directive syntax for OCSP stapling
The correct directive to enable OCSP stapling in nginx is ssl_stapling on;.
Step 2: Check each option for syntax correctness
Options A, B, and C use incorrect directive names or syntax.
Final Answer:
ssl_stapling on; -> Option D
Quick Check:
Enable OCSP stapling with ssl_stapling on; [OK]
Hint: Use ssl_stapling on; to enable OCSP stapling [OK]
Common Mistakes:
Using incorrect directive names like ssl_ocsp
Adding extra words like _enable or enable
Using true/false instead of on/off
3. Given this nginx snippet, what will happen if ssl_stapling is enabled but resolver is not set?
If the certificate lacks the OCSP responder URL, nginx cannot get the status, so stapling fails.
Final Answer:
The SSL certificate does not include the OCSP responder URL -> Option A
Quick Check:
Missing OCSP URL in cert = stapling fails [OK]
Hint: Cert must have OCSP URL for stapling to work [OK]
Common Mistakes:
Thinking missing key file causes stapling failure
Confusing HTTP port with SSL port
Assuming ssl_protocols affects stapling directly
5. You want to enable OCSP stapling in nginx with these requirements:
- Use Google's public DNS resolver
- Enable stapling
- Ensure nginx reloads config safely
Which configuration snippet correctly achieves this?
server {
listen 443 ssl;
ssl_certificate /etc/ssl/cert.pem;
ssl_certificate_key /etc/ssl/key.pem;
# Your config here
}
hard
A. resolver 8.8.8.8;
ssl_stapling off;
ssl_stapling_verify on;
B. resolver 8.8.8.8 8.8.4.4 valid=300s;
ssl_stapling on;
ssl_stapling_verify on;
C. ssl_stapling on;
ssl_stapling_verify off;
resolver 1.1.1.1;
D. resolver 8.8.8.8 8.8.4.4;
ssl_stapling on;
ssl_stapling_verify off;
Solution
Step 1: Set resolver with Google's DNS and validity
Use resolver 8.8.8.8 8.8.4.4 valid=300s; to specify DNS servers and cache time.
Step 2: Enable OCSP stapling and verification
Set ssl_stapling on; and ssl_stapling_verify on; to enable stapling and verify OCSP responses.
Step 3: Confirm safe reload
After config changes, run nginx -t to test and nginx -s reload to reload safely.