SSL सर्टिफिकेट की एक्सपायरी डेट कैसे चेक करें (4 तरीके)

लेखक: • 29 अक्टूबर, 2026 • डेवलपर टूल • 2 मिनट में पढ़ें

किसी भी SSL सर्टिफिकेट की एक्सपायरी डेट ऑनलाइन, ब्राउज़र में या openssl और curl से चेक करें। असली उदाहरण और सही तारीख की सीमाएँ।

विषय-सूची

SSL सर्टिफिकेट की एक्सपायरी डेट चेक करने के लिए हमारे मुफ़्त SSL लुकअप में सिर्फ़ डोमेन लिखें (जैसे example.in, बिना https:// के) और समाप्ति की तारीख वाली पंक्ति देखें। कमांड लाइन पर openssl s_client को openssl x509 -noout -enddate से जोड़ने पर यही तारीख notAfter के रूप में दिखती है। यह टूल पूरी तरह मुफ़्त है, इसके लिए अकाउंट नहीं चाहिए और यह किसी भी ब्राउज़र में चलता है, कुछ इंस्टॉल नहीं करना पड़ता।

नीचे तारीख पता करने के चार तरीके हैं, साथ में 29 अक्टूबर 2026 को किए गए असली टेस्ट के नतीजे भी। दूसरे हिस्से में बताया गया है कि एक्सपायरी डेट क्या नहीं बताती, क्योंकि कोई सर्टिफिकेट अपनी तारीखों के अंदर होते हुए भी ब्राउज़र में चेतावनी दिखा सकता है।

SSL सर्टिफिकेट की एक्सपायरी डेट चेक करने के चार तरीके

  • ऑनलाइन SSL लुकअप: सबसे तेज़ तरीका है, मोबाइल पर भी चलता है और वही सर्टिफिकेट दिखाता है जो बाकी इंटरनेट को मिलता है।
  • आपका ब्राउज़र: खुली हुई साइट पर एक बार नज़र डालने के लिए ठीक है।
  • openssl: Linux, macOS और सर्वर पर यही मानक टूल है, और इसे स्क्रिप्ट में चलाया जा सकता है।
  • curl: तब काम का है जब आप पहले से HTTP रिक्वेस्ट डीबग कर रहे हों।

तरीका 1: ऑनलाइन एक्सपायरी डेट चेक करें

  1. SSL लुकअप खोलें।
  2. सिर्फ़ होस्ट का नाम लिखें: example.in या shop.example.in। पूरा URL पेस्ट करेंगे तो टूल उसमें से अपने-आप होस्ट निकाल लेता है।
  3. वेबसाइट के लिए पोर्ट 443 ही रहने दें। दूसरी TLS सेवाओं के लिए ही इसे बदलें (नीचे देखें)।
  4. सबमिट करें पर क्लिक करें और समाप्ति की तारीख पढ़ें। समय UTC में दिखता है।
  5. बचे हुए दिन गिनें और रिन्यूअल जाँचने के लिए काफ़ी पहले की तारीख कैलेंडर में डाल दें।

असली उदाहरण: mybotsy.com

हमने अपना ही डोमेन SSL लुकअप में चलाया। नतीजा यह था (समय UTC में):

पंक्तिनतीजा
स्टेटसहरा निशान
जारी होने की तारीख2026-09-23 07:23:13
समाप्ति की तारीख2026-12-22 08:21:51
संगठनGoogle Trust Services
कॉमन नेमWE1
देशसंयुक्त राज्य अमेरिका
सिग्नेचर प्रकारecdsa-with-SHA256

इसे ऐसे पढ़ें:

  • समाप्ति की तारीख सर्टिफिकेट की notAfter तारीख है। 29 अक्टूबर को इसमें 53 दिन बचे थे।
  • जारी होने की तारीख से समाप्ति की तारीख तक ठीक 90 दिन हैं। ऑटोमेटेड सर्टिफिकेट आम तौर पर इतने ही दिन चलते हैं।
  • संगठन, कॉमन नेम और देश जारी करने वाली CA के बारे में हैं, आपकी साइट के बारे में नहीं। WE1, Google Trust Services की एक इंटरमीडिएट CA है, इसलिए कॉमन नेम में अपना डोमेन ढूँढने की ज़रूरत नहीं। सर्टिफिकेट किन नामों को कवर करता है, यह ब्राउज़र या openssl से देखें (नीचे बताया है)।
  • आज की तारीख दोनों तारीखों के बीच हो तो स्टेटस हरा दिखता है। यह सिर्फ़ तारीखें जाँचता है (इस पर आगे बात करेंगे)।

Google Trust Services ही क्यों? mybotsy.com, Cloudflare के पीछे है, इसलिए विज़िटर को Cloudflare का एज सर्टिफिकेट मिलता है, जिसे Cloudflare, Google Trust Services जैसी पब्लिक CA से लेता है। अगर आपकी साइट CDN इस्तेमाल करती है, तो हर पब्लिक चेक में CDN का सर्टिफिकेट ही दिखेगा। आपके ओरिजिन सर्वर वाले सर्टिफिकेट की एक्सपायरी डेट अलग होती है और उसे अलग से जाँचना पड़ता है।

ईमेल सर्वर और दूसरे पोर्ट

पोर्ट वाला फ़ील्ड उन सेवाओं के लिए है जो पहले बाइट से ही TLS इस्तेमाल करती हैं। हमने smtp.gmail.com को पोर्ट 465 (TLS पर SMTP) पर जाँचा: 7 अक्टूबर 2026 को जारी, 30 दिसंबर 2026 को समाप्त, जारीकर्ता Google Trust Services WE2। 993 (IMAP) और 995 (POP3) भी सीधे TLS वाले पोर्ट हैं। 587 और 143 जैसे पोर्ट सादे टेक्स्ट से शुरू होकर STARTTLS से एन्क्रिप्शन पर जाते हैं। इनके लिए openssl s_client -starttls smtp (या imap) चाहिए, क्योंकि लुकअप शुरुआत से ही TLS की उम्मीद करता है।

तरीका 2: ब्राउज़र में देखें

हर ब्राउज़र खुले पेज का सर्टिफिकेट दिखाता है। वर्ज़न के हिसाब से नाम थोड़े बदलते हैं, पर रास्ता कुछ ऐसा है:

  • Chrome और Edge: एड्रेस बार के बाईं ओर वाले आइकन पर क्लिक करें, फिर Connection is secure और Certificate is valid चुनें। एक्सपायरी डेट वैलिडिटी पीरियड में मिलेगी।
  • Firefox: ताले का आइकन, Connection secure, More information, View Certificate। अंतिम तारीख Not After में होती है।
  • Safari: ताले का आइकन, Show Certificate, फिर डिटेल्स में एक्सपायरी डेट।

ब्राउज़र Subject Alternative Names (SAN) भी दिखाता है, यानी वे सटीक होस्ट नाम जिन्हें सर्टिफिकेट कवर करता है। दिक्कत यह है कि आपको सिर्फ़ वही सर्टिफिकेट दिखता है जो आपके ब्राउज़र को मिला। CDN, लोड बैलेंसर या कई सर्वरों में से किसी एक पर पड़े पुराने सर्टिफिकेट की वजह से दूसरे विज़िटर को कुछ और मिल सकता है।

तरीका 3: openssl से चेक करें

Linux, macOS या Windows (WSL या Git Bash) पर यह कमांड सर्वर से जुड़कर दोनों तारीखें दिखाती है:

echo | openssl s_client -connect mybotsy.com:443 -servername mybotsy.com 2>/dev/null \
  | openssl x509 -noout -subject -issuer -dates

हमारा आउटपुट:

subject=CN=mybotsy.com
issuer=C=US, O=Google Trust Services, CN=WE1
notBefore=Sep 23 07:23:13 2026 GMT
notAfter=Dec 22 08:21:51 2026 GMT

यह ऑनलाइन लुकअप से सेकंड तक मेल खाता है। दो बातें ध्यान रखें:

  • हमेशा -servername दें। इससे SNI भेजा जाता है, जो कई साइटें चलाने वाले सर्वर को बताता है कि आपको कौन-सा सर्टिफिकेट चाहिए। इसके बिना शेयर्ड होस्टिंग किसी दूसरी साइट का सर्टिफिकेट दे सकती है और आप ग़लत तारीख पढ़ लेंगे।
  • echo | कनेक्शन तुरंत बंद कर देता है, ताकि कमांड इनपुट का इंतज़ार न करे।

दूसरी कमांड में -ext subjectAltName जोड़ने पर कवर होने वाले नाम दिखते हैं। mybotsy.com के लिए आया DNS:mybotsy.com, DNS:*.mybotsy.com।

जल्दी एक्सपायर हो रहा हो तो चेतावनी: -checkend

-checkend सेकंड की संख्या लेता है और अगर सर्टिफिकेट उतने समय के अंदर एक्सपायर होने वाला हो तो एग्ज़िट कोड 1 देता है। cron जॉब और CI के लिए यह एकदम सही है:

... | openssl x509 -noout -checkend 2592000   # 30 दिन
Certificate will not expire                 (एग्ज़िट कोड 0)

... | openssl x509 -noout -checkend 7776000   # 90 दिन
Certificate will expire                     (एग्ज़िट कोड 1)

दोनों लाइनें mybotsy.com के उसी सर्टिफिकेट की हैं, जिसमें 53 दिन बचे थे। अगले 30 दिन यह सुरक्षित है, अगले 90 दिन नहीं।

कई डोमेन की लिस्ट एक साथ चेक करें, बचे दिनों के साथ

hosts.txt में हर लाइन पर एक होस्ट लिखें और यह चलाएँ:

while read -r host; do
  end=$(echo | openssl s_client -connect "$host:443" -servername "$host" 2>/dev/null \
    | openssl x509 -noout -enddate 2>/dev/null | cut -d= -f2)
  if [ -z "$end" ]; then echo "$host  no certificate"; continue; fi
  days=$(( ( $(date -d "$end" +%s) - $(date +%s) ) / 86400 ))
  echo "$host  $end  $days days left"
done < hosts.txt

हमारा नतीजा:

mybotsy.com  Dec 22 08:21:51 2026 GMT  53 days left
expired.badssl.com  Apr 12 23:59:59 2015 GMT  -4217 days left
wrong.host.badssl.com  Dec 28 20:02:55 2026 GMT  60 days left

date -d GNU सिंटैक्स है। macOS पर coreutils इंस्टॉल करके gdate -d इस्तेमाल करें। डिस्क पर रखी सर्टिफिकेट फ़ाइल सीधे भी पढ़ी जा सकती है: openssl x509 -in cert.pem -noout -enddate।

curl से

curl -svI https://mybotsy.com 2>&1 | grep -i "expire date" ने expire date: Dec 22 08:21:51 2026 GMT दिखाया। curl अमान्य सर्टिफिकेट को मना भी कर देता है: expired.badssl.com और wrong.host.badssl.com दोनों पर यह एग्ज़िट कोड 60 (सर्टिफिकेट की समस्या) के साथ रुका, जिसे स्क्रिप्ट में आसानी से जाँचा जा सकता है।

सही एक्सपायरी डेट क्या साबित नहीं करती

हमने badssl.com के टेस्ट होस्ट जाँचे, जिन्हें जान-बूझकर ख़राब रखा गया है, ताकि दिखे कि तारीख वाली जाँच क्या पकड़ती है और क्या छोड़ देती है।

एक्सपायर्ड सर्टिफिकेट: पकड़ा गया

SSL लुकअप में expired.badssl.com का स्टेटस लाल आया: 9 अप्रैल 2015 को जारी, 12 अप्रैल 2015 को समाप्त। openssl ने भी यही बताया: Verify return code: 10 (certificate has expired)।

ग़लत होस्ट नाम: तारीखों से नहीं पकड़ा जाता

wrong.host.badssl.com का स्टेटस हरा आया और समाप्ति 28 दिसंबर 2026 थी, फिर भी ब्राउज़र इसे रिजेक्ट करते हैं। -verify_hostname wrong.host.badssl.com के साथ openssl ने Verify return code: 62 (hostname mismatch) दिया। सर्टिफिकेट *.badssl.com और badssl.com को कवर करता है, और वाइल्डकार्ड सिर्फ़ एक लेवल पर लागू होता है। यह www.badssl.com को कवर करता है, लेकिन wrong.host.badssl.com को नहीं, क्योंकि उसमें डोमेन से पहले दो लेवल हैं।

टूटी हुई चेन: तारीखों से यह भी नहीं पकड़ी जाती

openssl में self-signed.badssl.com ने कोड 18 (सेल्फ़-साइन्ड सर्टिफिकेट), untrusted-root.badssl.com ने कोड 19 और incomplete-chain.badssl.com ने कोड 21 (पहला सर्टिफिकेट वेरिफ़ाई नहीं हो सका) दिया। कोड 21 वही आम ग़लती है जिसमें इंटरमीडिएट सर्टिफिकेट लगाना छूट जाता है। कुछ डेस्कटॉप ब्राउज़र इसे ख़ुद संभाल लेते हैं, पर कई ऐप, API क्लाइंट और पुराने फ़ोन फ़ेल हो जाते हैं।

सार यह है कि एक्सपायरी डेट रिन्यूअल की योजना बनाने के काम आती है। सर्टिफिकेट सच में सही है, यह पक्का करने के लिए देखें कि वह होस्ट नाम कवर करता है और -verify_hostname के साथ openssl Verify return code: 0 (ok) दिखाता है या curl बिना एरर के चलता है।

सर्टिफिकेट की उम्र लगातार घट रही है

CA/Browser Forum के बैलट SC-081v3 के मुताबिक, 15 मार्च 2026 से जारी होने वाले पब्लिक TLS सर्टिफिकेट ज़्यादा से ज़्यादा 200 दिन के होंगे। 15 मार्च 2027 से यह सीमा 100 दिन और 15 मार्च 2029 से 47 दिन हो जाएगी। हमने जो सर्टिफिकेट जाँचे, उनमें से ज़्यादातर पहले से इससे काफ़ी नीचे हैं: mybotsy.com और badssl.com के Let's Encrypt सर्टिफिकेट 90 दिन के, और Gmail के SMTP का 84 दिन का। साल में एक बार हाथ से रिन्यू करना अब व्यावहारिक नहीं रहा। ऑटोमैटिक रिन्यूअल (Certbot जैसे ACME क्लाइंट, या आपकी होस्टिंग या CDN का ऑटो-SSL) अब आम तरीका है, और तारीख चेक करने से पता चलता है कि यह ऑटोमेशन ठीक चल रहा है या नहीं।

एक्सपायरी नज़दीक है? यह चेकलिस्ट देखें

  • रिन्यू कर दिया, फिर भी पुरानी तारीख दिख रही है? हो सकता है वेब सर्वर अब भी पुराना सर्टिफिकेट दे रहा हो। Nginx और Apache सर्टिफिकेट स्टार्ट या रीलोड के समय लोड करते हैं, इसलिए रिन्यूअल के बाद सर्विस रीलोड करें और लोड बैलेंसर के पीछे का हर सर्वर जाँचें।
  • CDN के पीछे हैं? एज सर्टिफिकेट (कोई भी पब्लिक चेक) और ओरिजिन सर्टिफिकेट अलग-अलग जाँचें।
  • ऑटो-रिन्यूअल फ़ेल हो रहा है? अगर CAA रिकॉर्ड में आपकी CA शामिल नहीं है, तो सर्टिफिकेट जारी नहीं होगा। इसे DNS लुकअप से जाँचें और हमारी DNS रिकॉर्ड चेक करने की गाइड पढ़ें।
  • डोमेन की एक्सपायरी से न मिलाएँ। डोमेन रजिस्ट्रेशन की अपनी अलग तारीख होती है, जो Whois लुकअप में दिखती है। डोमेन एक्सपायर हो गया तो सही सर्टिफिकेट भी काम नहीं आएगा।
  • ठीक करने के बाद URL रीडायरेक्ट चेकर से पक्का करें कि http:// सही से https:// पर जाता है, और HTTP हेडर लुकअप में strict-transport-security हेडर देखें।

अभी अपना सर्टिफिकेट जाँचें: SSL लुकअप खोलें, अपना डोमेन डालें और समाप्ति की तारीख नोट कर लें। यह मुफ़्त है और साइन-अप नहीं माँगता, ठीक HTTP/2 चेकर और बाकी वेबसाइट टूल की तरह।

अक्सर पूछे जाने वाले सवाल

मेरा SSL सर्टिफिकेट कब एक्सपायर होगा, यह कैसे पता करूँ?

My Botsy के मुफ़्त SSL लुकअप में अपना डोमेन डालें और समाप्ति की तारीख वाली पंक्ति देखें, जो UTC में होती है। टर्मिनल में openssl s_client को -servername के साथ चलाएँ और उसे openssl x509 -noout -enddate से जोड़ें, notAfter तारीख दिख जाएगी।

SSL सर्टिफिकेट एक्सपायर होने पर क्या होता है?

ब्राउज़र पूरे पेज पर चेतावनी दिखाते हैं, जैसे Chrome में आपका कनेक्शन निजी नहीं है, और ज़्यादातर विज़िटर लौट जाते हैं। ऐप, API क्लाइंट और curl जैसे टूल कनेक्ट ही नहीं होते। नया सर्टिफिकेट लगाकर सर्वर रीलोड करने तक कुछ ठीक नहीं होता।

SSL सर्टिफिकेट कितने दिन वैलिड रहता है?

15 मार्च 2026 से जारी पब्लिक सर्टिफिकेट ज़्यादा से ज़्यादा 200 दिन चलते हैं। मार्च 2027 में यह सीमा 100 दिन और मार्च 2029 में 47 दिन हो जाएगी। Let's Encrypt और Google Trust Services के कई सर्टिफिकेट पहले से लगभग 90 दिन के होते हैं।

रिन्यूअल के बाद भी साइट पुरानी तारीख क्यों दिखाती है?

अक्सर वेब सर्वर रीलोड नहीं हुआ होता, लोड बैलेंसर के पीछे किसी सर्वर पर पुरानी फ़ाइल रह जाती है, या आप ओरिजिन की जगह CDN का सर्टिफिकेट देख रहे होते हैं। सर्वर रीलोड करें और -servername के साथ दोबारा जाँचें।

क्या सही एक्सपायरी डेट का मतलब है कि मेरा SSL ठीक है?

ज़रूरी नहीं। तारीखों के अंदर होते हुए भी सर्टिफिकेट फ़ेल हो सकता है, अगर वह होस्ट नाम कवर नहीं करता या चेन अधूरी है। openssl -verify_hostname या curl से जाँचें और वेरिफ़ाई कोड 0 देखें।

क्या SSL लुकअप मुफ़्त है?

हाँ। यह मुफ़्त है और इसके लिए अकाउंट नहीं चाहिए। बिना साइन-अप के रोज़ कई मुफ़्त चेक मिलते हैं, और मुफ़्त My Botsy अकाउंट बनाने पर रोज़ की सीमा हट जाती है।

अमान्य JSON कैसे ठीक करें: 10 आम एरर और समाधान

28 अक्टूबर, 2026

अमान्य JSON जल्दी ठीक करें: Unexpected token एरर समझें और आखिरी कॉमा, कोट, कमेंट और गायब ब्रैकेट को कदम-दर-कदम सुधारें।

DNS रिकॉर्ड कैसे जाँचें: A, MX, TXT और CNAME

28 अक्टूबर, 2026

DNS रिकॉर्ड ऑनलाइन या dig और nslookup से जाँचें। A, AAAA, CNAME, MX, TXT, NS और CAA रिकॉर्ड क्या करते हैं और आम समस्याएँ कैसे सुलझाएँ।