SSL सर्टिफ़िकेट जाँच

वह सर्टिफ़िकेट पढ़ें जो साइट वाकई भेजती है — वे टूटे हुए भी जो ब्राउज़र दिखाने से मना कर देता है।

आज़माएँ:

इसके लिए कोई टूल चाहिए ही क्यों

आपका ब्राउज़र सर्टिफ़िकेट पहले से जाँचता है, और किसी भी वेब पेज से बेहतर जाँचता है। जो वह नहीं करेगा वह है टूटा हुआ सर्टिफ़िकेट आपको दिखाना। सत्यापन नाकाम होने पर आपको एक बीच में आ खड़ा होने वाला पन्ना और एक गोल-मोल वजह मिलती है; सर्टिफ़िकेट ख़ुद दो क्लिक और पीछे छिपा होता है — अगर वहाँ तक पहुँचा भी जा सके तो। और जाँचने लायक़ ख़राबियाँ आम तौर पर वही होती हैं जिनमें आपका ब्राउज़र बिलकुल ख़ुश है और किसी और का नहीं।

इसलिए ऊपर वाली जाँच एक सर्वर पर चलती है, और जान-बूझकर उस पर भरोसा किए बिना जो उसे मिले, और बताती है कि होस्ट ने असल में क्या पेश किया। मियाद ख़त्म, ख़ुद-हस्ताक्षरित, किसी और नाम के लिए जारी — यह सब दीवार बनकर नहीं, डेटा बनकर लौटता है।

चार तरह की नाकामियाँ, जिस क्रम में आप उनसे मिलेंगे

मियाद ख़त्म

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

होस्टनेम का मेल न खाना

सर्टिफ़िकेट असली है और चालू भी, पर वह उस नाम को नहीं ढकता जो आपने इस्तेमाल किया। लगभग हमेशा वाइल्डकार्ड का नियम: *.example.com, example.com को नहीं ढकता। दोनों नाम सर्टिफ़िकेट पर होने चाहिए, और यह चेकर उसे मिला हर नाम गिना देता है ताकि एक नज़र में दिख जाए कि कौन-सा ग़ायब है।

अधूरी चेन

यही सबसे अजीब बग रिपोर्ट पैदा करती है। सर्वर अपना सर्टिफ़िकेट भेजता है पर वह इंटरमीडिएट छोड़ देता है जो उसे किसी भरोसेमंद रूट से जोड़ता है। डेस्कटॉप ब्राउज़र आम तौर पर लापता टुकड़ा ख़ुद ले आते हैं और कुछ कहते नहीं। मोबाइल ब्राउज़र, Java क्लाइंट, पुराने Android, curl और ज़्यादातर API उपभोक्ता ऐसा नहीं करते — वे बस नाकाम हो जाते हैं।

नतीजा एक ऐसी साइट है जो डेवलपर के लैपटॉप पर बेहतरीन चलती है और बाक़ी सबके लिए रुक-रुककर — और इसीलिए ऊपर वाला चेन खंड यह गिनाता है कि सर्वर ने असल में क्या भेजा, न कि यह कि क्या दोबारा जोड़ा जा सकता था।

ख़ुद-हस्ताक्षरित

ख़ुद ही जारी किया हुआ, इसलिए डिफ़ॉल्ट रूप से कोई क्लाइंट उस पर भरोसा नहीं करता। किसी आंतरिक सेवा पर, जहाँ आप सर्टिफ़िकेट ख़ुद बाँटते हैं, यह पूरी तरह वाजिब है; और सार्वजनिक वेब पर कभी काम का नहीं।

ताले का मतलब क्या है और क्या नहीं

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

जो वह स्थापित नहीं करता वह यह है कि चलाने वाला ईमानदार है या नहीं। सर्टिफ़िकेट मुफ़्त हैं और सेकंडों में जारी हो जाते हैं, इसलिए फ़िशिंग साइटों के पास वैध सर्टिफ़िकेट होना आम बात है। ताले का मतलब कभी «यह साइट सुरक्षित है» था ही नहीं — और इसीलिए ब्राउज़र पिछले कुछ वर्षों से उसे सकारात्मक संकेत के तौर पर चुपचाप हटाते रहे हैं और अब सिर्फ़ एन्क्रिप्शन की अनुपस्थिति पर निशान लगाते हैं।

आपके सर्टिफ़िकेट की हर बात सार्वजनिक है

उसमें होस्टनेम जोड़ने से पहले यह जान लेना चाहिए। 2018 से हर सार्वजनिक रूप से भरोसेमंद सर्टिफ़िकेट को Certificate Transparency में जमा करना अनिवार्य है — ऐसे सार्वजनिक लॉग जिनमें सिर्फ़ जोड़ा जा सकता है, जिन्हें ब्राउज़र जाँचते हैं और जिनमें न मिलने वाले सर्टिफ़िकेट ठुकरा देते हैं।

सुरक्षा का फ़ायदा असली है: कोई सर्टिफ़िकेट अथॉरिटी चुपचाप आपके डोमेन का सर्टिफ़िकेट किसी और को जारी नहीं कर सकती, बिना इसके कि वह उस लॉग में दिखे जिस पर आप नज़र रख सकते हैं। दुष्प्रभाव यह है कि हर सर्टिफ़िकेट का हर नाम खोजा जा सकता है। किसी सार्वजनिक सर्टिफ़िकेट पर staging-admin.example.com डालना उस होस्ट के होने की ख़बर हर उस शख़्स तक पहुँचा देना है जो देखने की परवाह करे — और लोग देखते हैं; लॉग की निगरानी टोह लेने का मानक क़दम है।

नवीनीकरण अब वैकल्पिक नहीं रहने वाला

सार्वजनिक सर्टिफ़िकेट की अधिकतम उम्र बरसों से गिर रही है: पाँच साल, फिर तीन, फिर दो, और 2020 से 398 दिन। CA/Browser Forum ने अब ऐसा कार्यक्रम तय किया है जो इसे 2026 में 200 दिन, 2027 में 100 और 2029 तक 47 दिन पर ले आएगा।

47 दिन पर, हाथ से नवीनीकरण का मतलब है हर होस्ट पर साल में आठ बार यही करना, और नाकामी का अंजाम आपकी साइट का बैठ जाना। ACME के ज़रिए स्वचालन — Let's Encrypt, या आपका होस्टिंग प्रदाता जो भी देता हो — «अच्छी आदत» होना छोड़कर इकलौता चलने वाला विकल्प बन जाता है। अगर आप यहाँ सर्टिफ़िकेट इसलिए जाँच रहे हैं कि आपको मियाद ख़त्म होने का ईमेल मिला, तो असल में ठीक यही ठीक करने की चीज़ है।

यह क्या नहीं जाँचता

जान-बूझकर सीमित। यह सर्टिफ़िकेट और तय हुआ कनेक्शन पढ़ता है, और वहीं रुक जाता है। यह पेज नहीं लाता, आपके साइफ़र सूट को ग्रेड नहीं देता, प्रोटोकॉल की कमज़ोरियाँ नहीं परखता, और आपकी सेटिंग को सौ में से अंक नहीं देता। सर्वर की पूरी कॉन्फ़िगरेशन जाँच के लिए Qualys SSL Labs जमा-जमाया औज़ार है और वह यह काम बारीकी से करता है।

पड़ोस के सवालों के लिए: DNS लीक टेस्ट बताता है कि आपकी ओर से जवाब कौन-सा रिज़ॉल्वर दे रहा है, और IP लुकअप बताता है कि कोई दिया हुआ पता किसका है।

सर्टिफ़िकेट को लेकर आने वाले सवाल

साइट मेरे ब्राउज़र में चलती है पर यहाँ कहा जा रहा है कि सर्टिफ़िकेट भरोसेमंद नहीं। सही कौन है?

दोनों, और आम वजह अधूरी चेन होती है। सर्वर को अपना सर्टिफ़िकेट और साथ में वे इंटरमीडिएट भेजने चाहिए जो उसे किसी भरोसेमंद रूट से जोड़ते हैं। अगर वह सिर्फ़ अपना भेजे, तो डेस्कटॉप ब्राउज़र अक्सर ग़ायब इंटरमीडिएट ख़ुद ला कर इस खाई को ढँक देते हैं — इस सुविधा को AIA fetching कहते हैं। कई मोबाइल ब्राउज़र, API क्लाइंट, Java एप्लिकेशन और कमांड-लाइन टूल ऐसा नहीं करते। इसलिए साइट आपके लिए चलती है और आपके कुछ उपयोगकर्ताओं के लिए टूटती है — यही वह ख़राबी है जिसकी शिकायत «सिर्फ़ कुछ लोगों के लिए टूटता है» कहकर आती है। यह चेकर वही बताता है जो सर्वर ने असल में भेजा।

मेरा सर्टिफ़िकेट www.example.com के लिए वैध है पर example.com के लिए क्यों नहीं?

क्योंकि वाइल्डकार्ड ठीक एक लेबल को ढकता है, और वह भी सबसे बाईं ओर वाले को। *.example.com, www.example.com और api.example.com से मेल खाता है, पर न ख़ुद example.com से और न a.b.example.com से। नंगे डोमेन को सब्जेक्ट ऑल्टरनेटिव नेम्स में अलग से लिखना पड़ता है। यह सर्टिफ़िकेट की सबसे आम ग़लतियों में से एक है, और इससे ऐसी साइट बनती है जो www उपसर्ग के साथ चलती है और उसके बिना टूट जाती है।

सर्टिफ़िकेट कितने समय का होना चाहिए?

आज सार्वजनिक सर्टिफ़िकेट की सीमा 398 दिन है, और उद्योग निर्णायक रूप से छोटी अवधि की ओर बढ़ रहा है — CA/Browser Forum ने ऐसा कार्यक्रम तय किया है जो 2029 तक अधिकतम को 47 दिन पर ले आएगा। इसका व्यावहारिक नतीजा यह है कि हाथ से नवीनीकरण अब चलने लायक़ नहीं रहेगा। अगर आपका ACME या आपके होस्टिंग प्रदाता के ज़रिए अपने आप नवीनीकृत नहीं हो रहा, तो उसे तब ठीक कर लीजिए जब तक समय-सीमा ख़ुद यह काम न कर दे।

SSL और TLS में क्या फ़र्क़ है?

प्रोटोकॉल TLS है; SSL उसका पूर्ववर्ती है, और उसका आख़िरी संस्करण 2015 में त्याज्य घोषित हो चुका। आज जो कुछ चल रहा है वह TLS है। «SSL» शब्द उत्पादों, सर्टिफ़िकेटों और पदनामों में सिर्फ़ आदतवश बचा हुआ है — इसीलिए इस पेज का नाम SSL चेकर है जबकि यह जो भी मान बताता है वह TLS का है। अगर कोई सर्वर सचमुच SSL 3.0 दे रहा हो, तो यह अपने आप में एक निष्कर्ष है।

क्या वैध सर्टिफ़िकेट का मतलब है कि साइट सुरक्षित है?

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

क्या मैं अपने डोमेन के लिए जारी हर सर्टिफ़िकेट देख सकता हूँ?

हाँ, और देखना चाहिए। हर सार्वजनिक रूप से भरोसेमंद सर्टिफ़िकेट को Certificate Transparency में दर्ज करना अनिवार्य है — ये ऐसे सार्वजनिक लॉग हैं जिनमें सिर्फ़ जोड़ा जा सकता है और जिन्हें ब्राउज़र जाँचते हैं। crt.sh पर अपना डोमेन खोजिए और आपको उसके लिए अब तक जारी हर सर्टिफ़िकेट दिखेगा — ऐसा ही कोई सर्टिफ़िकेट यूँ ही पकड़ में आता है जो आपने माँगा नहीं था। इसका यह भी मतलब है कि आपके सर्टिफ़िकेट के सब्जेक्ट ऑल्टरनेटिव नेम सार्वजनिक हैं, इसलिए किसी निजी आंतरिक होस्टनेम को सार्वजनिक सर्टिफ़िकेट पर डालना उस होस्टनेम को प्रकाशित कर देना है।

A certificate protects the connection between a visitor and one site. It does nothing about what the networks in between can see about which sites you visit at all — that metadata is visible even when every connection is encrypted. What your network can still see

अंतिम समीक्षा । कुछ पुराना पड़ा हुआ मिला? हमें बताइए.