को अस्वीकार करने के लिए कैसे मजबूर करें मेरे पास जावा 7 पर चल रही एक https वेब सेवा है। मुझे बदलाव करने की आवश्यकता है ताकि यह सेवा केवल tls1.2 कनेक्शन स्वीकार करे और ssl3 को अस्वीकार करे , टीएलएस 1.0 और टीएलएस 1.1।जावा सर्वर को केवल टीएलएस 1.2 स्वीकार करने और टीएलएस 1.0 और टीएलएस 1.1 कनेक्शन
मैंने निम्नलिखित जावा पैरामीटर जोड़ा है ताकि tls1.2 सर्वोच्च प्राथमिकता हो।
-Dhttps.protocols=TLSv1.2
लेकिन यह जावा क्लाइंट से tls1.0 कनेक्शन भी स्वीकार करता है। यदि ग्राहक उपरोक्त जावा पैरामीटर के साथ भी चल रहा है, तो कनेक्शन tls1.2 है, लेकिन यदि क्लाइंट इस पैरामीटर के बिना चल रहा है, तो कनेक्शन tls1.0 है।
मैंने javak/jre/lib/सुरक्षा फ़ोल्डर में java.security फ़ाइल के आसपास कुछ खेल किया।
मैं वर्तमान में अक्षम एल्गोरिदम निम्नलिखित है:
jdk.certpath.disabledAlgorithms= MD2, MD4, MD5, SHA224, DSA, EC keySize < 256, RSA keySize < 2048, SHA1 keysize < 224
jdk.tls.disabledAlgorithms=DSA, DHE, EC keySize < 256, RSA keySize < 2048, SHA1 keysize < 224
मैं जावा 7 उपयोग कर रहा हूँ, अद्यतन 79 मैं प्रत्येक कनेक्शन में अवरोध और TLS संस्करण की जांच करने की ओर झुका नहीं कर रहा हूँ।
मेरा सर्वर प्रमाण पत्र आरएसए एल्गोरिदम के साथ एमडी 5 के साथ उत्पन्न 2048 बिट है।
यदि अक्षम एल्गोरिदम सूची में आरएसए कुंजीसाइज < 2048 के स्थान पर आरएसए है, तो मुझे त्रुटि संदेश के साथ SSLHandShakeError मिलता है: कोई सिफर सुइट सामान्य नहीं है।
मेरे परीक्षण कार्यक्रम निम्न URL से http सर्वर चल रहा है: http://www.herongyang.com/JDK/HTTPS-HttpsEchoer-Better-HTTPS-Server.html
कृपया मदद कैसे जावा स्वीकार करने के लिए केवल 1.2 कनेक्शन टीएलएस।
'SSLContext.getInstance (" TLSv1.2 ") 'काम करता है? –