मैं SSLServerSocket
लागू किया और है पर सक्षम है जब मैं विकल्प -Djavax.net.debug=ssl:handshake
सुरक्षित हैंडशेक डिबग करने के लिए साथ .jar
फ़ाइल शुरू करते हैं, मैं भी प्राप्त इन संदेश (कुछ सुरक्षित कनेक्शन स्थापित करने से पहले):"की उपेक्षा असमर्थित सिफ़र सुइट" संदेश जब "-Djavax.net.debug = SSL: हाथ मिलाना" सर्वर साइड
...
Ignoring unavailable cipher suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
Ignoring unavailable cipher suite: TLS_DHE_RSA_WITH_AES_256_CBC_SHA
Ignoring unavailable cipher suite: TLS_ECDH_RSA_WITH_AES_256_CBC_SHA
Ignoring unsupported cipher suite: TLS_DHE_DSS_WITH_AES_128_CBC_SHA256
Ignoring unsupported cipher suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA256
Ignoring unsupported cipher suite: TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
Ignoring unsupported cipher suite: TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256
Ignoring unsupported cipher suite: TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
Ignoring unsupported cipher suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
Ignoring unsupported cipher suite: TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384
Ignoring unsupported cipher suite: TLS_RSA_WITH_AES_256_CBC_SHA256
Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
Ignoring unsupported cipher suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
Ignoring unsupported cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
Ignoring unavailable cipher suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA
Ignoring unsupported cipher suite: TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384
Ignoring unsupported cipher suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
Ignoring unsupported cipher suite: TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256
Ignoring unavailable cipher suite: TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA
Ignoring unavailable cipher suite: TLS_RSA_WITH_AES_256_CBC_SHA
Ignoring unsupported cipher suite: TLS_RSA_WITH_AES_128_CBC_SHA256
...
इसका क्या अर्थ है? शायद मैं जावा में 256 बिट सुरक्षा खो रहा हूं (जावा निर्देशिका में कुछ फ़ाइलों को प्रतिस्थापित करने के लिए)?
SSLServerSocket
बनाने के बाद मैं की तरह सुरक्षित प्रोटोकॉल सक्षम है
socket.setEnabledProtocols(new String[]{"TLSv1","TLSv1.1","TLSv1.2","SSLv2Hello"});
शायद मैं इन ऊपर सिफ़र सुइट भी सक्षम होना चाहिए?
इन सिफर सुइट्स के अलावा, सब कुछ ठीक काम करता है।
संपादित करें:
हाँ, @Boris स्पाइडर सही था: Oracle's unlimited strength policy files स्थापित करने के बाद चेतावनी अब दिखाई नहीं देते।
यूघ, 'एसएसएलवी 2' ?? 256 बिट सुरक्षा के लिए आपको [ओरेकल की असीमित ताकत नीति फाइल] स्थापित करने की आवश्यकता है (http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html)। –
हां, क्योंकि कुछ एसएमटीपी सर्वर केवल एसएसएलवी 2 का समर्थन करते हैं ... और यदि आप संदेश प्राप्त कर रहे हैं, तो यह बस इसे छोड़ देता है ... (बेशक इसे बाद में STARTTLS विकल्प के बिना इसे फिर से भेजना चाहिए, लेकिन सभी एसएमटीपी सर्वर इस तरह व्यवहार नहीं करते हैं) .. मैं SSLv3 सुरक्षा के मुद्दों की वजह से केवल TLSv1, TLSv1.1, TLSv1.2 का उपयोग करने के लिए tryed है - लेकिन यही समस्या थी - नहीं सभी एसएमटीपी ग्राहकों/सर्वर इसे समर्थन ... –
@Boris जावा 'SSLv2Hello' करता है एसएसएलवी 2 को लागू नहीं करते हैं, यह केवल (क्लाइंट) का उपयोग करता है या एसएसएलवी 2 * प्रारूप * क्लाइंटहेल्लो को आरएफसी 5246 ई 2 और पूर्व प्रति बेहतर प्रोटोकॉल पर बातचीत करने की अनुमति देता है। यदि सहकर्मी (क्लाइंट) या मांग (सर्वर) वास्तविक एसएसएलवी 2 चुनता है, तो हैंडशेक को अपवाद के साथ निरस्त कर दिया जाता है। यह थोड़ा बदसूरत है, लेकिन वास्तव में एसएसएलवी 2 का उपयोग करने के रूप में बुरा नहीं है। –