सभी SSL articles SSL और Certificates

Certificate Revocation: OCSP, CRL, और जब private key compromise हो जाए तो क्या होता है

Certificate revocation SSL certificate को उसकी expiry date से पहले invalid करने की process है — आमतौर पर इसलिए कि private key compromise हो गई, certificate गलत तरीके से issue किया गया, या domain ownership बदल गया।

Theory में, revocation CA system का emergency fix है। Practice में, यह PKI infrastructure का सबसे कमज़ोर हिस्सा है। यहाँ जानें क्यों, और इसकी जगह क्या आ रहा है।

Certificate कब revoke करें

  • Private key compromise — leak, चोरी, या expose हो गई (जैसे, public Git repo में commit हो गई)
  • Certificate गलत तरीके से issue हुआ — CA ने ऐसे domain के लिए cert issue कर दिया जो आपके control में नहीं है
  • Domain बेच दिया — अब आप उस domain के owner नहीं हैं जिसे certificate cover करता है
  • Key rotation — आप keys rotate कर रहे हैं और पुराने certificate को invalid करना चाहते हैं
  • Server बंद किया — certificate अब valid नहीं होना चाहिए

Revocation कैसे काम करता है

CRL (Certificate Revocation List)

Original revocation mechanism। CA सभी revoked certificate serial numbers की एक list publish करता है। Browser list download करते हैं और उसके against check करते हैं।

Problems:

  • CRL time के साथ बड़ी हो जाती हैं (लाखों entries)
  • किसी भी certificate को verify करने से पहले browser को पूरी list download करनी होती है
  • Slow और bandwidth-heavy — ज़्यादातर browsers ने सालों पहले CRL check करना बंद कर दिया

OCSP (Online Certificate Status Protocol)

Real-time check। List download करने के बजाय, browser CA के OCSP server से पूछता है: “क्या यह certificate revoke किया गया है?”

यह कैसे काम करता है:

Browser → OCSP Responder: "Is cert serial #12345 still valid?"
OCSP Responder → Browser: "Good" / "Revoked" / "Unknown"

Problems:

  • Privacy — CA को पता चल जाता है कि आप कौन सी sites visit कर रहे हैं (वे हर OCSP request देखते हैं)
  • Latency — हर नए HTTPS connection में एक network round trip add हो जाती है
  • Availability — अगर OCSP responder down है, तो browser आमतौर पर soft-fail करते हैं (certificate वैसे भी accept कर लेते हैं), जिससे revocation ineffective हो जाता है

OCSP Stapling (improvement)

Server periodically OCSP response fetch करता है और इसे TLS handshake में “staple” कर देता है। Browser को CA से contact किए बिना revocation status मिल जाती है।

Benefits:

  • कोई privacy leak नहीं (browser CA से contact नहीं करता)
  • कोई extra latency नहीं (response handshake के साथ bundle होती है)
  • CA का OCSP server slow या down होने पर भी काम करता है

Configuration:

Nginx:

ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;

Apache:

SSLUseStapling on
SSLStaplingCache "shmcb:/var/run/apache2/ssl_stapling(128000)"

CRLite (future)

Mozilla का CRLite सभी known revocations को एक compact filter (~1.5 MB) में compress करता है जो Firefox update के साथ आता है। Browser locally revocation status check कर सकता है — कोई network request नहीं, कोई privacy leak नहीं, कोई latency नहीं। 2026 तक, CRLite Firefox में enabled है और other browsers भी adopt कर सकते हैं।

Revocation के बारे में कड़वी सच्चाई

Revocation practice में ज़्यादातर काम नहीं करता:

  • Chrome default रूप से OCSP या CRL check नहीं करता (अपने CRLSets पर depend करता है — एक selected subset)
  • Safari OCSP check करता है लेकिन soft-fail करता है (अगर OCSP server unavailable हो तो certificate accept कर लेता है)
  • Firefox CRLite use करता है (सबसे अच्छा approach, लेकिन सिर्फ Firefox में)
  • OCSP soft-fail का मतलब है कि एक determined attacker OCSP check को block कर सकता है और browser revoked certificate को accept कर लेगा

इसीलिए industry primary security के रूप में short-lived certificates की तरफ बढ़ रही है:

Approachकैसे protect करता है
Revocation (OCSP/CRL)Compromised cert को invalid करें — लेकिन check unreliable है
Short validity (90 दिन → 47 दिन)Compromised cert जल्दी expire हो जाता है — कोई check ज़रूरी नहीं

अगर कोई certificate सिर्फ 47 दिनों के लिए valid है, तो चुराई गई key maximum 47 दिनों के लिए useful है। यह damage को limit करता है भले ही revocation काम न करे।

Let’s Encrypt certificate कैसे revoke करें

अगर आपकी private key compromise हो गई है:

# With Certbot
sudo certbot revoke --cert-path /etc/letsencrypt/live/yourdomain.com/cert.pem --reason keycompromise

# With acme.sh
acme.sh --revoke -d yourdomain.com

Revoke करने के बाद, तुरंत एक नया certificate लें — revocation problem को fix नहीं करता, यह सिर्फ पुराने certificate को invalid करता है। नई key pair के साथ एक नया certificate issue करने के लिए GetHTTPS use करें।

FAQ

क्या मुझे OCSP stapling enable करना चाहिए?

हाँ। यह revocation check की guarantee नहीं देता (browser इसे ignore कर सकते हैं), लेकिन यह overall फायदेमंद है: faster TLS handshake (client-side OCSP lookup नहीं), better privacy (browser CA से contact नहीं करता), और कुछ browsers stapled OCSP responses का respect करते हैं। इसे enable करना free है — Nginx और Apache 2-3 lines के config से इसे support करते हैं।

Revocation कितनी जल्दी effective होता है?

CRL periodically publish होती हैं (hours से days तक)। OCSP responses cached होती हैं (आमतौर पर 1-4 hours)। Practice में, एक revoked certificate कुछ browsers के लिए 24 hours तक “valid” रह सकता है। यह एक और reason है कि short-lived certificates primary security के रूप में revocation की जगह ले रहे हैं।

क्या मुझे renew करते समय revoke करना होगा?

नहीं। नया certificate लेने के लिए पुराने को revoke करने की ज़रूरत नहीं है। पुराना certificate बस expire हो जाता है। Revocation सिर्फ तभी ज़रूरी है जब private key compromise हो — regular renewal के लिए नहीं।

क्या मैं check कर सकता हूँ कि कोई certificate revoke किया गया है?

# Check OCSP status
openssl s_client -connect yourdomain.com:443 -servername yourdomain.com -status 2>/dev/null | grep "OCSP Response Status"
# "successful" = OCSP stapling is working
# If empty, stapling is not enabled

या crt.sh पर check करें — revoked certificates interface में marked होते हैं।

संबंधित लेख

SSL और Certificates 2026-05-07
Certificate Chain of Trust की explanation
Browser root CA से intermediate CA से आपके certificate तक की chain के through SSL certificates को कैसे verify करते हैं। जानें chain order क्यों matter करता है और 'certificate not trusted' errors को कैसे fix करें।
SSL और Certificates 2026-05-07
SSL Certificate Validity: 47-Day Change Explained
CA/Browser Forum ने 2029 तक SSL certificate validity 47 days तक reduce करने के लिए vote किया। जानें timeline, आपकी website के लिए इसका क्या मतलब है, और कैसे prepare करें।
SSL और Certificates 2026-05-07
Certificate Authority (CA) क्या है?
Certificate Authority website की identity prove करने के लिए SSL certificates sign करता है। जानें CAs कैसे काम करते हैं, trust model, major CAs, और Let's Encrypt ने industry कैसे बदली।
डिप्लॉयमेंट 2026-05-08
Nginx पर SSL Certificate कैसे Install करें
Nginx पर SSL certificate install करने की step-by-step guide। File upload, full server block config, TLS best practices, HTTP/2, HSTS, redirect setup, testing, और 6 common errors का troubleshooting included है।
अपने browser में मुफ़्त SSL certificate पाएँ
कोई installation नहीं, कोई account नहीं। आपकी private key कभी आपका device नहीं छोड़ती।
अपना certificate पाएँ