यह एसएसएल की मेरी समझ है, मैं इस विषय में एक विशेषज्ञ नहीं हूं, लेकिन अन्य उत्तरों की अनुपस्थिति में उम्मीद है कि मैं आपको कम से कम कुछ चीजों को सोचने के लिए दे सकता हूं।
जब आप सर्वर आप ग्राहक किसी भी तरह, यह जैसे ही ग्राहक को जोड़ता स्थापित नहीं प्राप्त करता है करने के लिए इस जोड़ने की जरूरत के लिए एक स्वयं हस्ताक्षरित प्रमाणपत्र बनाने के लिए, अन्यथा किसी भी सर्वर सिर्फ एक आत्म हस्ताक्षरित प्रमाणपत्र भेजकर भरोसा हो सकता है जो कुछ भी उससे जुड़ने की कोशिश करता है। मेरे आवेदन में सर्वर प्रमाणपत्र को क्लाइंट के ट्रस्टस्टोर में लोड किया जाता है जब इसे javax.net.ssl.truststore ("पथ/से/सर्वर/प्रमाण") निर्दिष्ट करके शुरू किया जाता है;
अब जब क्लाइंट सर्वर से कनेक्ट होता है तो हैंडशेक होता है। इस बिंदु पर सर्वर क्लाइंट को अपना प्रमाणपत्र भेज देगा और ग्राहक पुष्टि करेगा कि वास्तव में यह सर्वर से अपने ट्रस्टस्टोर के खिलाफ जांच कर आया है (इस बिंदु पर इससे कोई फर्क नहीं पड़ता कि यह स्वयं हस्ताक्षरित है या नहीं, क्योंकि क्लाइंट को रूट प्रमाणपत्रों के साथ-साथ आपके द्वारा जोड़े गए किसी भी को जांचना चाहिए)। यदि सर्वर द्वारा भेजा गया प्रमाण पत्र संचार जारी रखता है और डेटा साझा किया जाता है।
सत्र व्यवहार का कुछ रूप है जो ऐसा होता है जो संचार को हर बार प्रमाणपत्रों का आदान-प्रदान किए बिना आगे बढ़ने की अनुमति देता है। लेकिन मेरा मानना है कि यह एकल कनेक्शन तक ही सीमित है, इसलिए जैसे ही आप कनेक्शन बंद करते हैं और एक नया बनाते हैं, प्रक्रिया को दोहराया जाना चाहिए, यानी सर्वर को फिर से प्रमाणीकरण के लिए अपना प्रमाण पत्र भेजना होगा।
तो संक्षेप में: स्वयं हस्ताक्षरित सर्वर प्रमाणपत्र को क्लाइंट पर एसएसएल संचार के साथ स्थापित करना होगा (जैसे किसी उत्पाद में रूट सीए प्रमाणपत्र कैसे स्थापित किए जाते हैं)। क्लाइंट और सर्वर के बीच किए गए प्रत्येक SSL कनेक्शन के लिए सर्वर को क्लाइंट को अपना प्रमाणपत्र भेजने की आवश्यकता होगी ताकि वह इसे अपने ट्रस्टस्टोर के विरुद्ध देख सके।
यह संभव है कि सर्वर सत्रों को फिर से शुरू करने की अनुमति देगा, इस स्थिति में प्रमाणपत्र नाराज नहीं होगा (लेकिन मुझे यकीन नहीं है कि सत्र में कौन सी स्थितियों को फिर से शुरू किया जा सकता है, शायद यह अलग-अलग सर्वरों पर कॉन्फ़िगर करने योग्य है) ।
आशा है कि कम से कम आपको कुछ सोचने के लिए कुछ देता है।
मैंने जावा में एक https सिम्युलेटर लिखा था। मैं स्व-हस्ताक्षरित प्रमाणपत्रों का उपयोग करके 15 सेकंड में 12000 - 15000 अनुरोधों का अनुकरण करने में सक्षम था। लेकिन सीए प्रमाणपत्रों का उपयोग करके 3 मिनट लगते हैं? मैं वास्तव में समझ में नहीं आता क्यों ऐसा होता है। क्या स्वयं हस्ताक्षरित बनाम सीए प्रमाणपत्रों के संचालन में कोई सूक्ष्म अंतर है? – JKV