एसएसएल प्रमाणपत्र समस्याएं किसी साइट की सबसे विघटनकारी तकनीकी समस्याओं में से एक हैं। एक समाप्त प्रमाणपत्र ब्राउज़र चेतावनी के साथ प्रत्येक विज़िटर को लॉक कर देता है। गलत कॉन्फ़िगर किया गया प्रमाणपत्र मौन विफलताओं का कारण बनता है। गलत डोमेन को जारी किया गया प्रमाणपत्र उपडोमेन को तोड़ देता है। और अधिकांश समस्याओं के विपरीत, प्रमाणपत्र संबंधी समस्याएं एक निर्धारित समय पर होती हैं - वे समाप्त हो जाती हैं - इसलिए यदि आप जानते हैं कि कहां देखना है तो उन्हें पूरी तरह से रोका जा सकता है।

यहां बताया गया है कि किसी भी एसएसएल प्रमाणपत्र की जांच कैसे करें, प्रत्येक फ़ील्ड का क्या मतलब है, और कुछ गलत होने पर क्या करना है।

त्वरित जांच: आपका ब्राउज़र

आप जिस भी साइट पर जा रहे हैं, उसके लिए सबसे तेज़ एसएसएल जांच सीधे आपके ब्राउज़र में होती है।

क्रोम / एज: URL के आगे लॉक आइकन (या "कनेक्शन सुरक्षित है" टेक्स्ट) पर क्लिक करें → प्रमाणपत्र मान्य है → प्रमाणपत्र विवरण

फ़ायरफ़ॉक्स: लॉक आइकन पर क्लिक करें → कनेक्शन सुरक्षित → अधिक जानकारी → प्रमाणपत्र देखें

यह आपको दिखाता है:

  • प्रमाणपत्र किसे जारी किया गया था (डोमेन)
  • इसे किसने जारी किया (प्रमाणपत्र प्राधिकरण)
  • दिनांक से मान्य/मान्य
  • प्रमाणपत्र का क्रमांक और फिंगरप्रिंट

त्वरित विवेक जांच के लिए - क्या यह प्रमाणपत्र वैध है, और क्या यह सही डोमेन से संबंधित है - आपको ब्राउज़र यूआई की आवश्यकता है।

संपूर्ण जांच: ऑनलाइन टूल

सिफर सुइट्स, चेन वैधता, एचएसटीएस कॉन्फ़िगरेशन और ज्ञात कमजोरियों सहित प्रमाणपत्र के संपूर्ण विश्लेषण के लिए, इसका उपयोग करें एसएसएल चेकर टूल. कोई भी डोमेन दर्ज करें और यह कुछ भी इंस्टॉल करने की आवश्यकता के बिना पूर्ण विश्लेषण चलाता है।

यह विशेष रूप से उपयोगी है:

  • सर्वर पर प्रमाणपत्र आप सीधे नहीं पहुंच सकते
  • इंस्टालेशन के बाद नया प्रमाणपत्र सत्यापित करना
  • प्रमाणपत्र समाप्त होने से पहले उनकी जाँच करना
  • ऑडिटिंग सिफर सुइट स्ट्रेंथ (टीएलएस 1.0/1.1 अक्षम किया जाना चाहिए)

कमांड लाइन: ओपनएसएल

डेवलपर्स और सिस्टम एडमिन के लिए, openssl आपको टर्मिनल से सीधे प्रमाणपत्र निरीक्षण की सुविधा देता है।

रिमोट सर्वर का प्रमाणपत्र जांचें:

कमान
openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null | openssl x509 -noout -text

यह पूर्ण प्रमाणपत्र विवरण लौटाता है। देखने लायक मुख्य क्षेत्र:

समाप्ति तिथि:

कमान
openssl s_client -connect example.com:443 -servername example.name </dev/null 2>/dev/null | openssl x509 -noout -dates

आउटपुट:

कमान
notBefore=Jan  1 00:00:00 2025 GMT
notAfter=Jan  1 00:00:00 2026 GMT

स्थानीय प्रमाणपत्र फ़ाइल की जाँच करें:

कमान
openssl x509 -in certificate.crt -noout -text
openssl x509 -in certificate.crt -noout -dates
openssl x509 -in certificate.crt -noout -subject -issuer

प्रमाणपत्र श्रृंखला सत्यापित करें:

कमान
openssl verify -CAfile chain.pem certificate.crt

समाप्ति तक के दिनों की जाँच करें (स्क्रिप्ट योग्य):

कमान
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -enddate | cut -d= -f2 | xargs -I{} date -d {} +%s | xargs -I{} expr \( {} - $(date +%s) \) / 86400

शेष दिनों की संख्या लौटाता है। स्क्रिप्ट की निगरानी में उपयोगी.

प्रत्येक प्रमाणपत्र फ़ील्ड का क्या अर्थ है

विषय / सामान्य नाम (सीएन): वह डोमेन जिसके लिए प्रमाणपत्र जारी किया गया था। आपके द्वारा देखे जा रहे डोमेन से मेल खाना चाहिए, अन्यथा ब्राउज़र एक चेतावनी दिखाएगा। वाइल्डकार्ड प्रमाणपत्रों के लिए, यह है *.example.com.

विषय वैकल्पिक नाम (एसएएन): प्रमाणपत्र में शामिल सभी डोमेन की सूची। आधुनिक प्रमाणपत्र केवल CN के बजाय SAN का उपयोग करते हैं। एक प्रमाणपत्र कवर हो सकता है example.com, www.example.com, और api.example.com - सभी यहां सूचीबद्ध हैं। ब्राउज़र वास्तव में यही जाँचता है।

जारीकर्ता: प्रमाणपत्र प्राधिकरण (सीए) जिसने प्रमाणपत्र पर हस्ताक्षर किए। सामान्य: लेट्स एनक्रिप्ट, डिजीसर्ट, सेक्टिगो, गूगल ट्रस्ट सर्विसेज, अमेज़ॅन। जारीकर्ता का अपना प्रमाणपत्र ब्राउज़र द्वारा विश्वसनीय रूट सीए द्वारा हस्ताक्षरित है।

वैधता अवधि: तारीखों से पहले नहीं और बाद में नहीं। प्रमाणपत्र समाप्त हो जाते हैं - आइए एन्क्रिप्ट प्रमाणपत्र हर 90 दिनों में समाप्त हो जाते हैं (स्वतः नवीनीकरण के साथ)। वाणिज्यिक प्रमाणपत्र आम तौर पर 1 वर्ष तक चलते हैं।

मुख्य एल्गोरिदम और आकार: आरएसए 2048-बिट न्यूनतम है; 4096-बिट या ईसी पी-256 अधिक मजबूत हैं। ईसी (अण्डाकार वक्र) प्रमाणपत्र छोटे कुंजी आकारों के साथ समतुल्य सुरक्षा प्रदान करते हैं, जो प्रदर्शन में मामूली सुधार करता है।

टीएलएस संस्करण: आपके सर्वर को टीएलएस 1.2 और टीएलएस 1.3 का समर्थन करना चाहिए। टीएलएस 1.0 और 1.1 अप्रचलित हैं और उन्हें अक्षम किया जाना चाहिए - आधुनिक ब्राउज़र इन पर कनेक्शन से इनकार करते हैं।

प्रमाणपत्र पारदर्शिता: आधुनिक प्रमाणपत्र सार्वजनिक प्रमाणपत्र पारदर्शिता लॉग में लॉग इन किए जाते हैं। Chrome द्वारा विश्वसनीय प्रमाणपत्रों के लिए यह अनिवार्य है. यह किसी को भी ऑडिट करने की सुविधा देता है कि किसी डोमेन के लिए कौन से प्रमाणपत्र जारी किए गए हैं - अनधिकृत प्रमाणपत्रों का पता लगाने के लिए उपयोगी है।

सामान्य एसएसएल समस्याएं और उन्हें कैसे ठीक करें

समाप्त प्रमाणपत्र सबसे आम मुद्दा। आपका ब्राउज़र त्रुटि के साथ "आपका कनेक्शन निजी नहीं है" दिखाता है NET::ERR_CERT_DATE_INVALID.

ठीक करें: प्रमाणपत्र नवीनीकृत करें। यदि आप Let's Encrypt with Certbot का उपयोग कर रहे हैं, तो चलाएँ certbot renew. यदि सशुल्क प्रमाणपत्र का उपयोग कर रहे हैं, तो अपने सीए के माध्यम से नवीनीकरण खरीदें और इसे इंस्टॉल करें। समाप्ति से 30 दिन पहले आपको सचेत करने के लिए निगरानी स्थापित करें ताकि उत्पादन में ऐसा कभी न हो।

प्रमाणपत्र डोमेन बेमेल के लिए प्रमाण पत्र जारी किया गया था example.com लेकिन आप दौरा कर रहे हैं www.example.com (या इसके विपरीत), और प्रमाणपत्र में SAN के रूप में अन्य शामिल नहीं है।

समाधान: या तो ऐसा प्रमाणपत्र प्राप्त करें जो दोनों को कवर करता हो (अधिकांश प्रमाणपत्रों को चाहिए), या लगातार एक को दूसरे पर पुनर्निर्देशित करें।

अपूर्ण प्रमाणपत्र श्रृंखला आपका सर्वर आपका प्रमाणपत्र प्रस्तुत कर रहा है लेकिन मध्यवर्ती प्रमाणपत्र नहीं जो इसे विश्वसनीय रूट सीए से जोड़ता है। जिन ब्राउज़रों ने इंटरमीडिएट को कैश किया है वे कनेक्ट हो सकते हैं; दूसरों को कोई त्रुटि दिखाई देती है.

ठीक करें: पूरी श्रृंखला भेजने के लिए अपने वेब सर्वर को कॉन्फ़िगर करें। Nginx के साथ, उपयोग करें ssl_certificate एक फ़ाइल की ओर इशारा करते हुए जिसमें आपका प्रमाणपत्र और मध्यवर्ती बंडल दोनों शामिल हैं। अपाचे के साथ, उपयोग करें SSLCertificateChainFile.

इस मुद्दे की विशेष रूप से जाँच करें:

कमान
openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null | grep -A 1 "Certificate chain"

आपको श्रृंखला में कम से कम 2 प्रमाणपत्र (आपका प्रमाणपत्र + इंटरमीडिएट) देखना चाहिए।

स्वहस्ताक्षरित प्रमाण पत्र ब्राउज़र उन प्रमाणपत्रों पर भरोसा नहीं करते हैं जो किसी मान्यता प्राप्त सीए द्वारा हस्ताक्षरित नहीं हैं। स्व-हस्ताक्षरित प्रमाणपत्र आंतरिक विकास के लिए ठीक हैं, लेकिन किसी भी सार्वजनिक-सामना वाली साइट के लिए चेतावनियाँ ट्रिगर करेंगे।

समाधान: किसी विश्वसनीय सीए से प्रमाणपत्र प्राप्त करें। Let's Encrypt सार्वजनिक डोमेन के लिए मुफ़्त और स्वचालित है।

कमजोर सिफर सुइट सर्वर पुराने या कमजोर एल्गोरिदम (RC4, DES, एक्सपोर्ट-ग्रेड सिफर, TLS 1.0/1.1) का उपयोग करके TLS कनेक्शन पर बातचीत करता है।

इसके साथ जांचें:

कमान
nmap --script ssl-enum-ciphers -p 443 example.com

समाधान: अपने वेब सर्वर के एसएसएल कॉन्फ़िगरेशन को केवल आधुनिक सिफर सुइट्स में अपडेट करें। मोज़िला का एसएसएल कॉन्फ़िगरेशन जेनरेटर Nginx, Apache और अन्य के लिए रेडी-टू-पेस्ट कॉन्फ़िगरेशन उत्पन्न करता है।

प्रमाणपत्र निगरानी

प्रमाणपत्रों की समय सीमा समाप्त होने से पहले उन्हें मैन्युअल रूप से जांचने से कोई पैमाना नहीं बनता। स्वचालित निगरानी के विकल्प:

सर्टिबोट ऑटो-नवीनीकरण: यदि आप Let's Encrypt का उपयोग कर रहे हैं, तो Certbot एक क्रॉन जॉब या सिस्टमडी टाइमर सेट करता है जो प्रमाणपत्रों को 30 दिन से कम समय शेष रहने पर स्वतः नवीनीकृत कर देता है। सत्यापित करें कि यह काम कर रहा है: certbot renew --dry-run

अपटाइम मॉनिटरिंग सेवाएँ: अधिकांश अपटाइम मॉनिटर (अपटाइमरोबोट, फ्रेशपिंग, बेटर अपटाइम) में प्रमाणपत्र समाप्ति अलर्ट शामिल होते हैं। 30 दिन की चेतावनी सीमा निर्धारित करें.

क्रॉन में कस्टम स्क्रिप्ट: का उपयोग करते हुए एक सरल बैश स्क्रिप्ट openssl उपरोक्त कमांड समाप्ति की जांच कर सकता है और एक ईमेल अलर्ट भेज सकता है।

कमान
#!/bin/bash
DOMAIN="example.com"
DAYS_LEFT=$(echo | openssl s_client -connect $DOMAIN:443 -servername $DOMAIN 2>/dev/null | openssl x509 -noout -enddate | cut -d= -f2 | xargs -I{} python3 -c "from datetime import datetime; print((datetime.strptime('{}', '%b %d %H:%M:%S %Y %Z') - datetime.utcnow()).days)")
if [ "$DAYS_LEFT" -lt 30 ]; then
    echo "Certificate for $DOMAIN expires in $DAYS_LEFT days" | mail -s "SSL Warning" admin@example.com
fi

निचली पंक्ति

प्रमाणपत्र संबंधी समस्याएं पूर्वानुमानित और रोके जाने योग्य हैं। मुख्य हैं - समाप्ति, डोमेन बेमेल, अपूर्ण श्रृंखला - सभी एसएसएल जांच में स्पष्ट रूप से दिखाई देते हैं।

के साथ किसी भी डोमेन पर चेक चलाएँ एसएसएल चेकर टूल. उत्पादन सर्वर के लिए, कम से कम 30-दिन की अलर्ट विंडो के साथ समाप्ति निगरानी सेट करें। और यदि आप अभी भी टीएलएस 1.0 या 1.1 पर हैं, तो उन्हें अक्षम कर दें - कोई भी आधुनिक सर्वर केवल टीएलएस 1.2+ होना चाहिए।