यहां एक rather detailed answer है जिसे मैंने कुछ समय पहले एसएसएल और टीएलएस के बीच अंतर का वर्णन किया था। संक्षेप में, टीएलएस एसएसएल का उत्तराधिकारी है, और टीएलएस 1.0 को "एसएसएल 3.1" के रूप में माना जा सकता है।
आप JSSE Reference Guide, in the SSLContext section को देखें, तो यह कहते हैं:
ये स्थिर तरीकों प्रत्येक एक उदाहरण है कि कम से कम का अनुरोध सुरक्षित सॉकेट प्रोटोकॉल लागू करता है लौटने। लौटाया गया उदाहरण अन्य प्रोटोकॉल को भी लागू कर सकता है। उदाहरण के लिए, getInstance ("TLSv1") एक उदाहरण लौटा सकता है जो "TLSv1", "TLSv1.1" और "TLSv1.2" लागू करता है।
यह Standard Names दस्तावेज़ में भी उल्लेख किया गया है।
कि विशेष रूप से, अगर आप SSLContextImpl के लिए Oracle/OpenJDK 7 स्रोत कोड की जांच, आप मिल जाएगा अपने सभी SSLContext
रों समर्थन (TLS 1.2 के लिए एक SSLv2 ग्राहक हैलो का उपयोग कर SSLv3 से) सभी प्रोटोकॉल। डिफ़ॉल्ट रूप से कौन से प्रोटोकॉल सक्षम हैं, यह अलग-अलग है। इसके अतिरिक्त, आपको सामान्य रूप से इस पर भरोसा नहीं करना चाहिए, क्योंकि अन्य जावा कार्यान्वयन (जैसे आईबीएम जेआरई) अलग-अलग व्यवहार कर सकता है।
यदि आप कनेक्शन के लिए प्रोटोकॉल का एक विशेष सेट उपयोग करना चाहते हैं, तो आपको SSLSocket
या SSLEngine
की setEnabledProtocols
विधि का उपयोग करना चाहिए। अन्यथा, यह Providers documentation में वर्णित अनुसार डिफ़ॉल्ट मानों का उपयोग करेगा।
देखें http://en.wikipedia.org/wiki/Transport_Layer_Security –
क्या आपने [प्रलेखन] (http://docs.oracle.com/javase/6/docs/api/javax/net/ पढ़ने की कोशिश की है) SSL/SSLContext.html # getInstance% 28java.lang.String% 29)? – Kai
मैं उन्हें खोजता हूं, और एसएसएल, एसएसएलवी 3, टीएलएस के बीच भिन्नता जानता हूं, मैं सर्वर और क्लाइंट के बीच विभिन्न प्रोटोकॉल प्रकार के बीच संचार को नहीं जानता। धन्यवाद – user1781746