2013-05-14 9 views
9

क्या किसी ने इससे पहले इस त्रुटि का सामना किया है? मैं एसएसएल के लिए नया हूं, क्या मेरे क्लाइंटहेल्लो के साथ कुछ भी गलत है कि मुझे याद आ रही है? उस अपवाद को सर्वरहेल्लो प्रतिक्रिया के साथ फेंक दिया गया है। किसी भी सलाह की सराहना की है।javax.net.ssl.SSLException: घातक चेतावनी प्राप्त हुई: प्रोटोकॉल_वर्जन

*** ClientHello, TLSv1 
RandomCookie: GMT: 1351745496 bytes = { 154, 151, 225, 128, 127, 137, 198, 245, 160, 35, 124, 13, 135, 120, 33, 240, 82, 223, 56, 25, 207, 231, 231, 124, 103, 205, 66, 218 } 
Session ID: {} 
Cipher Suites: [SSL_RSA_WITH_RC4_128_MD5, SSL_RSA_WITH_RC4_128_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_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_DES_CBC_SHA, SSL_DHE_RSA_WITH_DES_CBC_SHA, SSL_DHE_DSS_WITH_DES_CBC_SHA, SSL_RSA_EXPORT_WITH_RC4_40_MD5, SSL_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA, TLS_EMPTY_RENEGOTIATION_INFO_SCSV] 
Compression Methods: { 0 } 
*** 
[write] MD5 and SHA1 hashes: len = 75 
0000: 01 00 00 47 03 01 51 92 00 D8 9A 97 E1 80 7F 89 ...G..Q......... 
0010: C6 F5 A0 23 7C 0D 87 78 21 F0 52 DF 38 19 CF E7 ...#...x!.R.8... 
0020: E7 7C 67 CD 42 DA 00 00 20 00 04 00 05 00 2F 00 ..g.B... ...../. 
0030: 33 00 32 00 0A 00 16 00 13 00 09 00 15 00 12 00 3.2............. 
0040: 03 00 08 00 14 00 11 00 FF 01 00     ........... 
xxx, WRITE: TLSv1 Handshake, length = 75 
[write] MD5 and SHA1 hashes: len = 101 
0000: 01 03 01 00 3C 00 00 00 20 00 00 04 01 00 80 00 ....<... ....... 
0010: 00 05 00 00 2F 00 00 33 00 00 32 00 00 0A 07 00 ..../..3..2..... 
0020: C0 00 00 16 00 00 13 00 00 09 06 00 40 00 00 15 [email protected] 
0030: 00 00 12 00 00 03 02 00 80 00 00 08 00 00 14 00 ................ 
0040: 00 11 00 00 FF 51 92 00 D8 9A 97 E1 80 7F 89 C6 .....Q.......... 
0050: F5 A0 23 7C 0D 87 78 21 F0 52 DF 38 19 CF E7 E7 ..#...x!.R.8.... 
0060: 7C 67 CD 42 DA          .g.B. 
xxx, WRITE: SSLv2 client hello message, length = 101 
[Raw write]: length = 103 
0000: 80 65 01 03 01 00 3C 00 00 00 20 00 00 04 01 00 .e....<... ..... 
0010: 80 00 00 05 00 00 2F 00 00 33 00 00 32 00 00 0A ....../..3..2... 
0020: 07 00 C0 00 00 16 00 00 13 00 00 09 06 00 40 00 [email protected] 
0030: 00 15 00 00 12 00 00 03 02 00 80 00 00 08 00 00 ................ 
0040: 14 00 00 11 00 00 FF 51 92 00 D8 9A 97 E1 80 7F .......Q........ 
0050: 89 C6 F5 A0 23 7C 0D 87 78 21 F0 52 DF 38 19 CF ....#...x!.R.8.. 
0060: E7 E7 7C 67 CD 42 DA        ...g.B. 
[Raw read]: length = 5 
0000: 15 03 01 00 02          ..... 
[Raw read]: length = 2 
0000: 02 46            .F 

{http://xml.apache.org/axis/} स्टैकट्रेस: ​​

javax.net.ssl.SSLException: Received fatal alert: protocol_version 
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:190) 
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:136) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1806) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:986) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1170) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1197) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1181) 
at org.apache.axis.components.net.JSSESocketFactory.create(JSSESocketFactory.java:186) 
at 

...

+0

आप किस सर्वर का उपयोग कर रहे हैं? स्पष्टीकरण के लिए – CloudyMarble

उत्तर

4

यह उस प्रोटोकॉल संस्करण बेमेल की तरह लगता है, यह अपवाद सामान्य रूप से होता है जब वहाँ के द्वारा प्रयोग किया SSL प्रोटोकॉल संस्करण के बीच एक बेमेल है ग्राहक और सर्वर। आपके क्लाइंट को सर्वर द्वारा समर्थित प्रोक्टोकॉल संस्करण का उपयोग करना चाहिए।

+0

धन्यवाद। अगर मेरी समस्या ठीक हो गई है तो मैं आपको बता दूंगा :) – Matthias

1

यह इस तथ्य के कारण है कि आप एक टीएलएसवी 1 हैंडशेक भेजते हैं, लेकिन फिर आप SSLv2 प्रोटोकॉल का उपयोग करके एक संदेश भेजते हैं;

xxx, WRITE: TLSv1 Handshake, length = 75 
xxx, WRITE: SSLv2 client hello message, length = 101 

इसका मतलब है कि सर्वर टीएलएसवी 1 प्रोटोकॉल का उपयोग करने की अपेक्षा करता है और कनेक्शन स्वीकार नहीं करेगा। निर्दिष्ट प्रोटोकॉल का उपयोग करने का प्रयास करें, या कुछ प्रासंगिक कोड पोस्ट करें ताकि हम

+1

यह http://docs.oracle.com/javase/1.5.0/docs/guide/security/jsse/ReadDebug.html के अनुसार सामान्य प्रतीत होता है हालांकि – Matthias

+0

आपका सर्वर किस प्रोटोकॉल का समर्थन करता है? –

18

जावा पर 1.8 डिफ़ॉल्ट टीएलएस प्रोटोकॉल v1.2 देख सकें। जावा 1.6 और 1.7 डिफ़ॉल्ट पर अप्रचलित TLS1.0 है। मुझे जावा 1.8 पर यह त्रुटि मिलती है, क्योंकि यूआरएल पुराने टीएलएस 1.0 का उपयोग करता है (जैसे आपका - आप ClientHello, TLSv1 देखते हैं)। इस त्रुटि को हल करने के लिए आपको Java 1.8 के लिए ओवरराइड डिफ़ॉल्ट का उपयोग करने की आवश्यकता है।

System.setProperty("https.protocols", "TLSv1"); 

Oracle blog पर अधिक जानकारी।

+0

सेट करने के लिए अधिक प्रोटोकॉल के लिए https://stackoverflow.com/a/47717547/1497139 देखें –

1

मारियोश का जवाब सही रास्ते पर लगता है। यह मेरे लिए काम नहीं किया। तो मैंने पाया:

Problems connecting via HTTPS/SSL through own Java client

का उपयोग करता है जो:

java.lang.System.setProperty("https.protocols", "TLSv1,TLSv1.1,TLSv1.2"); 

कौन सा जावा 7 और एक TLSv1.2 साइट के साथ आवश्यक प्रतीत हो रहा है।

मैं के साथ साइट की जाँच की:

openssl s_client -connect www.st.nmfs.noaa.gov:443 

openssl version 
OpenSSL 1.0.2l 25 May 2017 

का उपयोग करने और परिणाम मिला:

... 
SSL-Session: 
    Protocol : TLSv1.2 
    Cipher : ECDHE-RSA-AES256-GCM-SHA384 
... 

कृपया ध्यान दें पर अपने मैक कि और पुराने openssl संस्करण काम नहीं किया और मुझे मैकपोर्ट्स का उपयोग करना पड़ा।

संबंधित मुद्दे