दिलचस्प पोस्ट
टाइपस्क्रिप्ट, भ्रमित "डुप्लिकेट पहचानकर्ता" त्रुटि संदेश कैसे एक HTML लिंक के माध्यम से एसएमएस शरीर पाठ को पूर्व में पॉप्युलेट करने के लिए एक आईओएस ऐप में फेसबुक प्रमाणीकरण के लिए डिजाइन जो एक सुरक्षित वेब सेवा तक पहुंचता है विंडोज थ्रेडिंग: _beginthread vs _beginthreadex बनाम CreateThread C ++ ओरेकल का उपयोग करके चुनें ड्यूप्लिकेट कीज़ के साथ डेटा। टीटीज़ में शामिल होने पर कब की अनुमति हो सकती है? जावास्क्रिप्ट ऑब्जेक्ट के गुणों का सबसेट कैसे प्राप्त करें नेस्टेड लूप से बाहर तोड़ना सूचियों में आइटम की सूचि के भीतर सूची संलग्न करना कैसे एक संपत्ति को सुरक्षित और सी # में आंतरिक बनाने के लिए? "@" प्रतीक का मतलब हस्केल में सूचियों के संदर्भ में क्या होता है? चमकदार: फ़ंक्शन चालू हो रहा है, तो प्रदर्शित "लोड हो रहा है …" संदेश मैं Google डिस्क में उप-फ़ोल्डर्स और सब-सब-फ़ोल्डर्स कैसे खोजूं? कोणीय जेएस में डबल और एकल घुंघराले ब्रेस के बीच का अंतर? jQuery कॉलबैक में अधिक पैरामीटर पास करें

जावा SSL एचैंडशैक्स अपवाद "सामान्य में कोई सिफर सूट नहीं"

मैं अपने OpenSUSE सर्वर पर क्लाइंट कनेक्शन को स्वीकार करने के लिए SSLServerSocket का उपयोग कर रहा हूं, लेकिन उनमें से कोई भी कनेक्ट नहीं हो सकता। मुझे हमेशा एक SSLHandshakeException मिलता है जो no cipher suites in common कहता। मैंने सभी संभव स्वीट्स को सक्रिय किया है, कई प्रोटोकॉल सक्षम किए हैं, नवीनतम ऑरेकल जेआरई और ओपनजेडक के साथ प्रयास किया है। इसके अलावा मैंने मंचों और सामान पर कई अन्य पोस्टों का पालन किया और ओरेकल के जेआर में सभी सिफर सूटों को "अनलॉक किया" और मैंने इस तरह openjdk jre की सेटिंग बदल दी:

अक्षम: #security.provider.10=sun.security.pkcs11.SunPKCS11 ${java.home}/lib/security/nss.cfg और सक्षम: security.provider.9=sun.security.ec.SunEC

इस तरह से मैं अपना SSLServerSocket प्रारंभ कर रहा हूं:

  System.setProperty("javax.net.ssl.keyStore", "./keystore"); System.setProperty("javax.net.ssl.keyStorePassword", "nopassword"); java.lang.System.setProperty("sun.security.ssl.allowUnsafeRenegotiation", "true"); // Create a trust manager that does not validate certificate chains TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() { public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType) { } public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType) { } public java.security.cert.X509Certificate[] getAcceptedIssuers() { return null; } } }; // Install the all-trusting trust manager SSLContext sc = SSLContext.getInstance("TLSv1.2"); sc.init(null, trustAllCerts, new SecureRandom()); SSLServerSocket ssl = (SSLServerSocket) sc.getServerSocketFactory().createServerSocket( DownloadFilelist.PORT); // Got rid of: //ssl.setEnabledCipherSuites(sc.getServerSocketFactory().getSupportedCipherSuites()); ssl.setEnabledProtocols(new String[] {"TLSv1", "TLSv1.1", "TLSv1.2", "SSLv3"}); // System.out.println(Arrays.toString(ssl.getEnabledCipherSuites())); s = ssl; // s = new ServerSocket(DownloadFilelist.PORT); s.setSoTimeout(TIMEOUT); 

समस्या यह है कि मुझे पता नहीं है कि ग्राहक क्या सिफर सूट चाहते हैं और न ही मैं इसे प्रभावित कर सकता हूं। मैंने कार्यक्रम शुरू -Djavax.net.debug=ssl,handshake , यहां परिणाम है -Djavax.net.debug=ssl,handshake क्या आप में से कोई यह समझ सकता है कि समस्या क्या है?

संपादित करें keytool -genkey -keyalg RSA -keystore ./keystore साथ उत्पन्न हुआ था: keytool -genkey -keyalg RSA -keystore ./keystore

यहां इस पृष्ठ पर कोड है, यदि वह मदद करता है (लगता है कि प्रारूपण गड़बड़ नहीं है):

 trigger seeding of SecureRandom trigger seeding of SecureRandom done seeding SecureRandom done seeding SecureRandom Ignoring unavailable cipher suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDH_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 unavailable cipher suite: TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA Ignoring unsupported cipher suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 Ignoring unavailable cipher suite: TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 Ignoring unavailable cipher suite: TLS_ECDHE_RSA_WITH_RC4_128_SHA Ignoring unavailable cipher suite: TLS_ECDH_ECDSA_WITH_RC4_128_SHA Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_RC4_128_SHA Ignoring unavailable cipher suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 Ignoring unavailable cipher suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDH_RSA_WITH_RC4_128_SHA Ignoring unavailable cipher suite: TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 Ignoring unavailable cipher suite: TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDH_RSA_WITH_AES_128_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 Ignoring unavailable cipher suite: TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 Ignoring unavailable 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_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDH_RSA_WITH_AES_256_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 Ignoring unavailable cipher suite: TLS_ECDHE_RSA_WITH_RC4_128_SHA Ignoring unavailable cipher suite: TLS_ECDH_ECDSA_WITH_RC4_128_SHA Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_RC4_128_SHA Ignoring unavailable cipher suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 Ignoring unavailable cipher suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDH_RSA_WITH_RC4_128_SHA Ignoring unavailable cipher suite: TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 Ignoring unavailable cipher suite: TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDH_RSA_WITH_AES_128_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 Ignoring unavailable cipher suite: TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 Ignoring unavailable cipher suite: TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 Ignoring unavailable cipher suite: TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA Ignoring unsupported cipher suite: TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 Ignoring unavailable cipher suite: TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA Ignoring unsupported cipher suite: TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 Ignoring unavailable cipher suite: TLS_ECDHE_RSA_WITH_RC4_128_SHA Ignoring unavailable cipher suite: TLS_ECDH_ECDSA_WITH_RC4_128_SHA Ignoring unsupported cipher suite: TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_RC4_128_SHA Ignoring unsupported cipher suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 Ignoring unavailable cipher suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDH_RSA_WITH_RC4_128_SHA Ignoring unsupported cipher suite: TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 Ignoring unavailable cipher suite: TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDH_RSA_WITH_AES_128_CBC_SHA Ignoring unsupported cipher suite: TLS_RSA_WITH_AES_256_CBC_SHA256 Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_AES_128_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 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 unsupported cipher suite: TLS_RSA_WITH_AES_128_CBC_SHA256 Ignoring unavailable cipher suite: TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA main, setSoTimeout(2000) called Allow unsafe renegotiation: true Allow legacy hello messages: true Is initial handshake: true Is secure renegotiation: false %% No cached client session *** ClientHello, TLSv1 RandomCookie: GMT: 1361763651 bytes = { 159, 113, 250, 254, 103, 37, 66, 234, 127, 4, 36, 240, 60, 252, 55, 112, 6, 224, 192, 181, 146, 163, 63, 148, 152, 255, 77, 8 } Session ID: {} Cipher Suites: [TLS_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_DSS_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, SSL_RSA_WITH_RC4_128_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_RC4_128_MD5, TLS_EMPTY_RENEGOTIATION_INFO_SCSV] Compression Methods: { 0 } *** main, WRITE: TLSv1 Handshake, length = 67 main, READ: TLSv1 Handshake, length = 81 *** ServerHello, TLSv1 RandomCookie: GMT: 1361763767 bytes = { 249, 20, 120, 68, 76, 110, 168, 235, 47, 91, 119, 64, 151, 242, 169, 191, 111, 105, 146, 90, 173, 223, 55, 127, 133, 12, 1, 247 } Session ID: {246, 66, 250, 209, 13, 188, 190, 246, 14, 49, 113, 183, 192, 202, 68, 246, 121, 162, 165, 71, 242, 220, 233, 223, 245, 47, 250, 215, 203, 94, 255, 148} Cipher Suite: TLS_RSA_WITH_AES_256_CBC_SHA Compression Method: 0 Extension renegotiation_info, renegotiated_connection: <empty> *** %% Initialized: [Session-1, TLS_RSA_WITH_AES_256_CBC_SHA] ** TLS_RSA_WITH_AES_256_CBC_SHA main, READ: TLSv1 Handshake, length = 933 *** Certificate chain chain [0] = [ [ Version: V3 Subject: CN=dc.hadiko.de, O=hadiko dc, L=town, ST=land of the free, C=de Signature Algorithm: SHA1withRSA, OID = 1.2.840.113549.1.1.5 Key: Sun RSA public key, 2048 bits modulus: public exponent: 65537 Validity: [From: Sat Jul 07 12:56:23 CEST 2012, To: Tue Jul 07 12:56:23 CEST 2015] Issuer: CN=dc.hadiko.de, O=hadiko dc, L=town, ST=land of the free, C=de SerialNumber: [ 8682354f f94fbbb5] Certificate Extensions: 3 [1]: ObjectId: 2.5.29.35 Criticality=false AuthorityKeyIdentifier [ KeyIdentifier [ 0000: 43 1D D9 A7 CF 21 2E 17 F3 4E EE F6 6C 6C 88 16 C....!...N..ll.. 0010: 08 3C 67 8E .<g. ] ] [2]: ObjectId: 2.5.29.19 Criticality=false BasicConstraints:[ CA:true PathLen:2147483647 ] [3]: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: 43 1D D9 A7 CF 21 2E 17 F3 4E EE F6 6C 6C 88 16 C....!...N..ll.. 0010: 08 3C 67 8E .<g. ] ] ] Algorithm: [SHA1withRSA] Signature: 0000: 14 83 48 D3 EC 39 49 E3 9C BC 20 F5 BF E4 32 33 ..H..9I... ...23 0010: 5F 09 8F 2D F2 C3 82 80 79 93 9A C1 97 93 92 D9 _..-....y....... 0020: D0 DA 4D B2 FC A1 43 60 1F B9 EA 4C 29 D7 79 D0 ..M...C`...L).y. 0030: 66 8C 25 14 EB 9D 60 94 D7 F4 15 33 8B 17 24 24 f.%...`....3..$$ 0040: 5C 65 26 3D C3 B0 8A 51 B6 27 01 D1 A6 A3 68 87 \e&=...Q.'....h. 0050: 2D 6F 0B E6 00 96 B6 CF BC E9 D2 9C 7E 19 9E E1 -o.............. 0060: 3A 96 42 2E B7 E8 C0 70 01 99 20 39 89 6D 94 2B :.B....p.. 9.m.+ 0070: 76 2F F1 0E 6D 2D 9B 52 77 D3 63 6A 11 DC A3 E6 v/..m-.Rw.cj.... 0080: 4E 0E 64 6D FA 77 BC 1E 4F C3 91 AD 21 F7 5D 31 N.dm.w..O...!.]1 0090: F9 04 A5 FA 34 EF 43 61 F1 42 32 5A 9B D1 16 84 ....4.Ca.B2Z.... 00A0: 07 2B CA 01 AF 84 54 D2 A9 C4 3A 7A EA D1 2A 95 .+....T...:z..*. 00B0: 47 30 03 BA 48 C4 57 1F 78 58 6C 7A 56 60 40 2C G0..HWxXlzV`@, 00C0: 6A 17 15 3F 43 A5 FB 81 4D 9D 1B DC A7 CE 78 D1 j..?C...M.....x. 00D0: 5A 66 97 79 04 55 DA 34 3C B2 CD 9A 62 EE 32 22 Zf.yU4<...b.2" 00E0: 70 84 0E 3E 5D 7F 91 0D A5 D4 84 6B F3 E9 40 E9 p..>]......k..@. 00F0: E8 69 D7 E5 FC B6 0A 4C 35 66 CC BA E5 38 12 A0 .i.....L5f...8.. ] *** main, READ: TLSv1 Handshake, length = 4 *** ServerHelloDone *** ClientKeyExchange, RSA PreMasterSecret, TLSv1 main, WRITE: TLSv1 Handshake, length = 262 SESSION KEYGEN: PreMaster Secret: 0000: 03 01 59 D3 0F F9 95 E8 DC E2 C2 4A 2B 93 79 55 ..Y........J+.yU 0010: 0B 1A 43 5E F4 0A 73 F1 13 E1 00 DF 78 55 F6 52 ..C^..s.....xU.R 0020: 4E 6A D3 2C F8 08 A1 B3 03 DF C9 5E 8C 14 8D 4E Nj.,.......^...N CONNECTION KEYGEN: Client Nonce: 0000: 51 2B DD 43 9F 71 FA FE 67 25 42 EA 7F 04 24 F0 Q+.Cq.g%B...$. 0010: 3C FC 37 70 06 E0 C0 B5 92 A3 3F 94 98 FF 4D 08 <.7p......?...M. Server Nonce: 0000: 51 2B DE B7 F9 14 78 44 4C 6E A8 EB 2F 5B 77 40 Q+....xDLn../[w@ 0010: 97 F2 A9 BF 6F 69 92 5A AD DF 37 7F 85 0C 01 F7 ....oi.Z..7..... Master Secret: 0000: 3E 9E 24 42 3D E4 82 AF AD 97 76 EF 06 EF FB FD >.$B=.....v..... 0010: C8 1A D5 7E 8E A2 74 4D E8 E7 B9 1E 60 E9 E0 6F ......tM....`..o 0020: 09 E3 56 81 FC 2D 20 D9 69 6B 26 C3 0B C5 53 5F ..V..- .ik&...S_ Client MAC write Secret: 0000: 04 30 70 7E A9 4A 1F 88 55 F8 31 31 75 36 40 35 .0p..J..U.11u6@5 0010: 25 65 24 5D %e$] Server MAC write Secret: 0000: 8B C1 65 50 6D 11 21 32 CD 50 3A AB 0F 2E A5 FC ..ePm.!2.P:..... 0010: C7 30 E6 EC .0.. Client write key: 0000: 25 D7 96 B0 9A 1F 49 95 06 4D 05 36 2E D0 38 04 %.....I..M.6..8. 0010: 0F 32 15 2E 8F 0A 6C 79 F8 ED E8 9B FE 5C 2C D8 .2....ly.....\,. Server write key: 0000: 4A 91 5D DF B2 FE 6F 35 3E 8A 21 DF 17 E0 35 F0 J.]...o5>.!...5. 0010: DB 97 4C 7E 18 07 7E 27 DD AD BC C4 C4 28 C5 E1 ..L....'.....(.. Client write IV: 0000: B6 C1 98 05 9B 37 F9 0F 4E 0C 0F 6E 08 8A 26 C9 .....7..N..n..&. Server write IV: 0000: 0E 83 27 3E 3B 40 E8 BE 4C 58 C4 5F EF E4 D3 4C ..'>;@..LX._...L main, WRITE: TLSv1 Change Cipher Spec, length = 1 *** Finished verify_data: { 23, 181, 134, 191, 68, 30, 119, 81, 239, 135, 238, 80 } *** main, WRITE: TLSv1 Handshake, length = 48 main, READ: TLSv1 Change Cipher Spec, length = 1 main, READ: TLSv1 Handshake, length = 48 *** Finished verify_data: { 254, 182, 228, 50, 121, 214, 35, 175, 100, 128, 102, 152 } *** %% Cached client session: [Session-1, TLS_RSA_WITH_AES_256_CBC_SHA] main, WRITE: TLSv1 Application Data, length = 48 HSent: HSUP ADBASE ADTIGR ADBLOM main, READ: TLSv1 Application Data, length = 32 main, READ: TLSv1 Application Data, length = 48 main, READ: TLSv1 Application Data, length = 32 main, READ: TLSv1 Application Data, length = 32 main, WRITE: TLSv1 Application Data, length = 32 main, WRITE: TLSv1 Application Data, length = 288 ClientManager, READ: TLSv1 Application Data, length = 32 ClientManager, READ: TLSv1 Application Data, length = 96 [...] (Cut out becauseI exceeded body limit.) ClientManager, READ: TLSv1 Application Data, length = 80 ClientManager, READ: TLSv1 Application Data, length = 32 ClientManager, READ: TLSv1 Application Data, length = 80 main, WRITE: TLSv1 Application Data, length = 32 main, WRITE: TLSv1 Application Data, length = 64 Allow unsafe renegotiation: true Allow legacy hello messages: true Is initial handshake: true Is secure renegotiation: false Ignoring unavailable cipher suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA Ignoring unsupported cipher suite: TLS_RSA_WITH_AES_256_CBC_SHA256 for SSLv3 Ignoring unsupported cipher suite: TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 for SSLv3 Ignoring unsupported cipher suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 for SSLv3 Ignoring unsupported cipher suite: TLS_RSA_WITH_AES_256_CBC_SHA256 for TLSv1 Ignoring unsupported cipher suite: TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 for TLSv1 Ignoring unsupported cipher suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 for TLSv1 Ignoring unsupported cipher suite: TLS_RSA_WITH_AES_256_CBC_SHA256 for TLSv1.1 Ignoring unsupported cipher suite: TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 for TLSv1.1 Ignoring unsupported cipher suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 for TLSv1.1 Ignoring unavailable cipher suite: TLS_ECDH_RSA_WITH_AES_256_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 Ignoring unavailable cipher suite: TLS_ECDHE_RSA_WITH_RC4_128_SHA Ignoring unavailable cipher suite: TLS_ECDH_ECDSA_WITH_RC4_128_SHA Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_RC4_128_SHA Ignoring unavailable cipher suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 Ignoring unavailable cipher suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDH_RSA_WITH_RC4_128_SHA Ignoring unavailable cipher suite: TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 Ignoring unavailable cipher suite: TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDH_RSA_WITH_AES_128_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 Ignoring unavailable cipher suite: TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 A client, READ: SSLv3 Handshake, length = 112 Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 Ignoring unavailable 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_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA *** ClientHello, TLSv1.2 RandomCookie: GMT: 1361763651 bytes = { 47, 7, 95, 146, 25, 28, 95, 191, 146, 159, 184, 47, 149, 220, 67, 169, 121, 123, 252, 98, 0, 253, 108, 88, 108, 188, 52, 76 } Session ID: {} Cipher Suites: [TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_RSA_WITH_AES_256_CBC_SHA256, TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA256, TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_256_CBC_SHA, TLS_DHE_DSS_WITH_AES_256_CBC_SHA256, TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_RC4_128_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_CAMELLIA_128_CBC_SHA, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_256_CBC_SHA256, TLS_RSA_WITH_CAMELLIA_256_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_RC4_128_SHA, SSL_RSA_WITH_RC4_128_MD5] Compression Methods: { 0 } Extension renegotiation_info, renegotiated_connection: <empty> Extension signature_algorithms, signature_algorithms: Unknown (hash:0x4, signature:0x2), SHA256withRSA, SHA1withRSA, SHA1withDSA *** %% Initialized: [Session-2, SSL_NULL_WITH_NULL_NULL] %% Invalidated: [Session-2, SSL_NULL_WITH_NULL_NULL] A client, SEND TLSv1.2 ALERT: fatal, description = handshake_failure A client, WRITE: TLSv1.2 Alert, length = 2 A client, called closeSocket() A client, handling exception: javax.net.ssl.SSLHandshakeException: no cipher suites in common 

आउटपुट में एक दूसरे सर्वर से कनेक्ट होता है जो काम करता है और उसके बाद मेरे सर्वर से कनेक्शन। मैं अन्य कनेक्ट को नहीं निकाल सकता, क्योंकि मुझे इस कनेक्शन से कनेक्ट करने की जानकारी मिल रही है। मैं पहली कनेक्ट होने के बाद डीबगिंग को सक्षम कर सकता हूं, यदि यह संभव है, लेकिन मुझे नहीं पता कि कैसे …

मैंने सभी संबंधित उत्पादन (आउटपुट जो मैंने बनाए हैं) को हटा दिया

अद्यतन करें:

मैं अपने आप से भी कनेक्ट नहीं कर सकता जब मैं एक ही अनुप्रयोग में कनेक्ट करने के लिए एक SSLServerSocket और एक SSLSocket बनाएँ, मुझे एक ही त्रुटि मिलती है। लेकिन जब मैं सक्षम सिफर सूइट्स की सूचियों की तुलना करता हूं, तो उन सूटों का एक समूह होता है जो दोनों सॉकेट्स द्वारा समर्थित होते हैं। मैंने परीक्षण किया है कि विंडोज 7 पर 64 बिट नवीनतम जेडीके के साथ।

अद्यतन करें:

मैंने अपने प्रोग्राम के सर्वर भाग को ट्यूटोरियल का उपयोग करके खरोंच से शुरू किया और जादुई तौर पर यह काम किया … मुझे पता नहीं क्यों है, लेकिन ऐसा लगता है कि मुझे यथासंभव अधिक मानक लागूकरण के रूप में उपयोग करना चाहिए था। मैं ब्रूनो को प्रतिष्ठा देता हूं, क्योंकि उन्होंने अपने पद में सबसे अधिक प्रयास किया।

वेब के समाधान से एकत्रित समाधान "जावा SSL एचैंडशैक्स अपवाद "सामान्य में कोई सिफर सूट नहीं""

आप एक null KeyManager सरणी के साथ अपने SSLContext आरंभ कर रहे हैं।

प्रमुख प्रबंधक वह है जो सर्वर प्रमाणपत्र (सर्वर साइड पर) को संभालता है, और यह वह है जिसे आप javax.net.ssl.keyStore का उपयोग करते समय सेट करने के लिए लक्षित कर रहे हैं।

हालांकि, जैसा कि जेएसएसई संदर्भ गाइड में वर्णित है, पहले पैरामीटर के लिए null का उपयोग करते हुए ऐसा नहीं करता जो आपको लगता है कि ऐसा लगता है:

यदि KeyManager [] पैरामीटर शून्य है, तो एक खाली कुंजी प्रबंधक को इस संदर्भ के लिए परिभाषित किया जाएगा। यदि TrustManager [] पैरामीटर शून्य है, स्थापित सुरक्षा प्रदाता TrustManagerFactory के सर्वोच्च-प्राथमिकता कार्यान्वयन के लिए खोजा जाएगा, जिसमें से एक उपयुक्त TrustManager प्राप्त किया जाएगा। इसी तरह, सिक्योर रैंडम पैरामीटर निरर्थक हो सकता है, इस स्थिति में एक डिफ़ॉल्ट कार्यान्वयन का उपयोग किया जाएगा।

एक खाली KeyManager में कोई आरएसए या डीएसए प्रमाण पत्र नहीं है। इसलिए, सभी प्रमाणभूत साइफर सूट जो कि इस तरह के प्रमाण पत्र पर भरोसा करते हैं, अक्षम हैं। यही कारण है कि आप इन सभी " अनुपलब्ध साइफर सूट को अनदेखा कर रहे हैं " संदेश प्राप्त करते हैं, जो अंततः " सामान्य में कोई सिफर सूट " संदेश नहीं देते हैं

यदि आप अपने मुख्यस्टार को एक कुंजीस्टोर के रूप में उपयोग करना चाहते हैं, तो आपको इसे लोड करने और उसके साथ एक KeyManagerFactory आरंभ करने की आवश्यकता होगी:

  KeyStore ks = KeyStore.getInstance("JKS"); InputStream ksIs = new FileInputStream("..."); try { ks.load(ksIs, "password".toCharArray()); } finally { if (ksIs != null) { ksIs.close(); } } KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory .getDefaultAlgorithm()); kmf.init(ks, "keypassword".toCharArray()); 

का उपयोग करें kmf.getKeyManagers() SSLContext.init() के पहले पैरामीटर के रूप में

अन्य दो मापदंडों के लिए, क्योंकि आप स्पष्ट रूप से क्लाइंट-प्रमाण-पत्र प्रमाणीकरण का अनुरोध नहीं कर रहे हैं, आपको विश्वास प्रबंधक को अपने डिफ़ॉल्ट मान ( null ) को ट्रस्ट मैनेजर की प्रतिलिपि बनाने / चिपकाने के बजाय छोड़ देना चाहिए जो कि भेद्यता का संभावित कारण है, और आप भी डिफ़ॉल्ट null SecureRandom उपयोग करें

यह समस्या क्लाइंट या सर्वर पर सक्षम सिफर सूइट्स के अनुचित हेरफेर के कारण हो सकती है, लेकिन मुझे संदेह है कि सबसे सामान्य कारण यह है कि सर्वर को निजी कुंजी और प्रमाण पत्र नहीं है।

ध्यान दें:

 ssl.setEnabledCipherSuites(sc.getServerSocketFactory().getSupportedCipherSuites()); 

इस रेखा से छुटकारा पायें आपका सर्वर असुरक्षित TrustManager पहले से ही असुरक्षित है। -Djavax.net.debug=SSL,handshake, साथ अपने सर्वर को चलाने के लिए, एक कनेक्ट करने की कोशिश करें, और यहां परिणामस्वरूप परिणाम पोस्ट करें।

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

डीबगिंग के लिए जब मैं जवा जोड़ता हूँ जैसे उल्लिखित है:

 -Djavax.net.debug=ssl 

तो आप देख सकते हैं कि ब्राउज़र TLSv1 और Jetty 9.1.3 का उपयोग करने की कोशिश कर रहा था TLSv1.2 बोल रहा था, इसलिए वे संचार नहीं कर रहे थे। वह फ़ायरफ़ॉक्स है क्रोम चाहता था SSLv3 तो मैं भी कहा कि यह भी।

 sslContextFactory.setIncludeProtocols( "TLSv1", "SSLv3" ); <-- Fix sslContextFactory.setRenegotiationAllowed(true); <-- added don't know if helps anything. 

मैं मूल पोस्टर के अन्य सामानों में से अधिकांश नहीं किया:

 // Create a trust manager that does not validate certificate chains TrustManager[] trustAllCerts = new TrustManager[] { 

या यह जवाब:

 KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory .getDefaultAlgorithm()); 

या

 .setEnabledCipherSuites 

मैंने इस तरह एक स्व हस्ताक्षरित प्रमाणपत्र बनाया: (लेकिन मैंने फाइल नाम के लिए। Jks जोड़ा) और पढ़ा है कि मेरी जेटी जावा कोड में। http://www.eclipse.org/jetty/documentation/current/configuring-ssl.html

 keytool -keystore keystore.jks -alias jetty -genkey -keyalg RSA 

प्रथम और अंतिम नाम *। mywebdomain.com

ऐसा लगता है कि आप TLSv1.2 का उपयोग करके कनेक्ट करने का प्रयास कर रहे हैं, जो कि सर्वर पर व्यापक रूप से कार्यान्वित नहीं है क्या आपका गंतव्य समर्थन Tls1.2 है?

सर्वर

 import java.net.*; import java.io.*; import java.util.*; import javax.net.ssl.*; import javax.net.*; class Test{ public static void main(String[] args){ try{ SSLContext context = SSLContext.getInstance("TLSv1.2"); context.init(null,null,null); SSLServerSocketFactory serverSocketFactory = context.getServerSocketFactory(); SSLServerSocket server = (SSLServerSocket)serverSocketFactory.createServerSocket(1024); server.setEnabledCipherSuites(server.getSupportedCipherSuites()); SSLSocket socket = (SSLSocket)server.accept(); DataInputStream in = new DataInputStream(socket.getInputStream()); DataOutputStream out = new DataOutputStream(socket.getOutputStream()); System.out.println(in.readInt()); }catch(Exception e){e.printStackTrace();} } } 

ग्राहक

 import java.net.*; import java.io.*; import java.util.*; import javax.net.ssl.*; import javax.net.*; class Test2{ public static void main(String[] args){ try{ SSLContext context = SSLContext.getInstance("TLSv1.2"); context.init(null,null,null); SSLSocketFactory socketFactory = context.getSocketFactory(); SSLSocket socket = (SSLSocket)socketFactory.createSocket("localhost", 1024); socket.setEnabledCipherSuites(socket.getSupportedCipherSuites()); DataInputStream in = new DataInputStream(socket.getInputStream()); DataOutputStream out = new DataOutputStream(socket.getOutputStream()); out.writeInt(1337); }catch(Exception e){e.printStackTrace();} } } 

server.setEnabledCipherSuites (server.getSupportedCipherSuites ()); socket.setEnabledCipherSuites (socket.getSupportedCipherSuites ());

मेरे मामले में, मुझे यह no cipher suites in common त्रुटि no cipher suites in common मिली क्योंकि मैंने एक jks फाइल के बजाय सर्वर की jks एक p12 प्रारूप फ़ाइल लोड की है।