bg-tutorials

OpenSSL से SSL सर्टिफिकेट की एक्सपायरी डेट कैसे चेक करें

SSL सर्टिफिकेट की वैधता अवधि सीमित होती है और ब्राउज़र द्वारा भरोसेमंद बने रहने के लिए इन्हें नियमित रूप से रिन्यू करना ज़रूरी होता है। 15 मार्च, 2026 के बाद जारी किए गए सार्वजनिक सर्टिफिकेट की अधिकतम वैधता 200 दिन तक सीमित होगी, जो 15 मार्च, 2027 को घटकर 100 दिन और 15 मार्च, 2029 को 47 दिन रह जाएगी। यह ठीक-ठीक जानना कि सर्टिफिकेट कब समाप्त होता है, आपको समय पर रिन्यू करने और आउटेज से बचने में मदद करता है।

यह गाइड आपको दिखाती है कि OpenSSL के साथ सर्टिफिकेट की समाप्ति (expiration) कैसे जाँचें: एक लाइव सर्वर के लिए, एक लोकल फ़ाइल के लिए, और यह कैसे जाँचें कि कोई सर्टिफिकेट कहीं समाप्त होने वाला तो नहीं है।

त्वरित उत्तर:

किसी लाइव वेबसाइट के लिए, यह चलाएँ:

echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -enddate. 

किसी सर्टिफिकेट फ़ाइल के लिए, यह चलाएँ:

openssl x509 -in your_certificate.pem -noout -enddate. 

notAfter वैल्यू ही समाप्ति की तारीख है।

तरीका 1: किसी लाइव सर्वर पर सर्टिफिकेट जाँचें

यह तरीका एक चल रही वेबसाइट से कनेक्ट होता है और उसके द्वारा सर्व किए जा रहे सर्टिफिकेट को पढ़ता है, आपको सर्टिफिकेट फ़ाइल की ज़रूरत नहीं होती। यह किसी भी पहुँच योग्य होस्ट (एक रिमोट डोमेन, या लोकल सर्वर के लिए सही पोर्ट के साथ localhost) के लिए काम करता है।

Linux और macOS पर

echo | openssl s_client -servername yourdomain.com -connect yourdomain.com:443 2>/dev/null | openssl x509 -noout -enddate

yourdomain.com को अपने वास्तविक डोमेन से बदलें। कमांड macOS पर भी एक समान हैं, क्योंकि macOS Unix-जैसा है (इसका बिल्ट-इन openssl LibreSSL है, जो इन विकल्पों को सपोर्ट करता है)।

Windows पर

  • Command Prompt या PowerShell खोलें (Win + R दबाएँ, cmd या powershell टाइप करें, और Enter दबाएँ)।
  • यह चलाएँ:
echo | openssl s_client -servername yourdomain.com -connect yourdomain.com:443 2>nul | openssl x509 -noout -enddate

Windows पर, त्रुटि संदेशों को हटाने के लिए 2>/dev/null की जगह 2>nul का उपयोग करें।

तरीका 2: PEM फ़ाइल से सर्टिफिकेट जाँचें

एक PEM फ़ाइल एक base64-एन्कोडेड सर्टिफिकेट होती है जो —–BEGIN CERTIFICATE—– से शुरू होती है और —–END CERTIFICATE—– पर समाप्त होती है। जब आपके पास डिस्क पर सर्टिफिकेट फ़ाइल हो, तो इस तरीके का उपयोग करें।

Linux और macOS पर

उस फ़ोल्डर में जाएँ जिसमें आपका सर्टिफिकेट है, फिर इसकी समाप्ति तारीख पढ़ें (your_certificate.pem को अपनी फ़ाइल के नाम से बदलें):

cd /path/to/your/certificate/directory
openssl x509 -in your_certificate.pem -noout -enddate

Windows पर

cd C:pathtoyourcertificatedirectory
openssl x509 -in your_certificate.pem -noout -enddate

सुनिश्चित करें कि OpenSSL इंस्टॉल है और आपके PATH में है; अन्यथा, openssl.exe बाइनरी का पूरा पथ (full path) निर्दिष्ट करें।

दोनों तारीखें देखें, या जाँचें कि कोई सर्टिफिकेट जल्द समाप्त हो रहा है या नहीं

जारी करने की तारीख (notBefore) और समाप्ति की तारीख (notAfter) दोनों देखने के लिए, -enddate की जगह -dates का उपयोग करें:

openssl x509 -in your_certificate.pem -noout -dates

यह जाँचने के लिए कि क्या कोई सर्टिफिकेट किसी निश्चित समय-सीमा के भीतर समाप्त हो जाएगा, सेकंड्स की संख्या के साथ -checkend का उपयोग करें (यहाँ, 2592000 सेकंड = 30 दिन):

openssl x509 -in your_certificate.pem -noout -checkend 2592000

यह Certificate will not expire प्रिंट करता है (और स्टेटस 0 के साथ बाहर निकलता है) या Certificate will expire (स्टेटस 1) — जो इसे मॉनिटरिंग स्क्रिप्ट्स और cron जॉब्स के लिए आदर्श बनाता है।

कमांड और आउटपुट को समझना

उदाहरण के तौर पर लाइव-सर्वर कमांड और उसका आउटपुट लें:

echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null | openssl x509 -noout -enddate

आउटपुट:

notAfter=Sep 15 23:59:59 2026 GMT

यहाँ बताया गया है कि हर भाग क्या करता है:

  • echo | — खाली इनपुट भेजता है ताकि कमांड इंटरेक्शन का इंतज़ार किए बिना पूरी हो जाए।
  • openssl s_client — सर्वर के साथ एक SSL/TLS कनेक्शन खोलता है।
  • -servername example.comServer Name Indication (SNI) सेट करता है, जो तब आवश्यक होता है जब एक सर्वर अलग-अलग डोमेन के लिए कई सर्टिफिकेट होस्ट करता है।
  • -connect example.com:443 — जिस होस्ट और पोर्ट से कनेक्ट करना है (पोर्ट 443 स्टैंडर्ड HTTPS पोर्ट है)।
  • 2>/dev/null (Linux/macOS) या 2>nul (Windows) — त्रुटि संदेशों को हटा देता है ताकि केवल संबंधित आउटपुट दिखाई दे।
  • | openssl x509 -noout -enddate — सर्टिफिकेट को x509 टूल में पाइप करता है; -noout PEM डंप को दबा देता है और -enddate केवल समाप्ति की तारीख प्रिंट करता है।
  • notAfter=… — वह तारीख और समय जब सर्टिफिकेट वैध रहना बंद कर देता है।

इसे स्वचालित करें: तारीखों को हाथ से ट्रैक करना बंद करें

समाप्ति तारीखों को मैन्युअल रूप से जाँचने के बजाय, खासकर जब वैधता अवधि घटकर 47 दिनों की ओर जा रही है, आप Certificate-as-a-Service (CaaS) के रूप में ACME का उपयोग कर सकते हैं। यह डोमेन वेरिफिकेशन को संभालता है, सर्टिफिकेट इंस्टॉल करता है, और उनके समाप्त होने से पहले उन्हें स्वचालित रूप से रिन्यू करता है, जिससे आपकी वेबसाइट मैन्युअल हस्तक्षेप के बिना भरोसेमंद बनी रहती है।

आज ऑर्डर करते समय एसएसएल प्रमाणपत्रों पर 10% की बचत करें!

तेजी से जारी करना, मजबूत एन्क्रिप्शन, 99.99% ब्राउज़र ट्रस्ट, समर्पित समर्थन और 25 दिन की मनी-बैक गारंटी। कूपन कोड: SAVE10

उड़ान में एक ड्रैगन की एक विस्तृत छवि
द्वारा लिखित

एसएसएल प्रमाणपत्रों में विशेषज्ञता वाला अनुभवी सामग्री लेखक। जटिल साइबर सुरक्षा विषयों को स्पष्ट, आकर्षक सामग्री में बदलना। प्रभावशाली आख्यानों के माध्यम से डिजिटल सुरक्षा को बेहतर बनाने में योगदान करें।