2010-09-07 12 views
5

मुझे कोई समस्या है जब कोई क्लाइंट (मेरा नहीं) सुरक्षित रूप से मेरे सर्वर से कनेक्ट होता है।जावा "सुरक्षित में कोई सिफर सुइट्स" समस्या को सर्वर से सुरक्षित रूप से कनेक्ट करने का प्रयास करते समय

ऐसा लगता है कि कनेक्शन को मिस्चचिंग सिफर के आधार पर अस्वीकार कर दिया जा रहा है, लेकिन मैंने सत्यापित किया है कि सर्वर वास्तव में क्लाइंट के साथ कुछ सिफर साझा करता है।

क्या यह अज्ञात सिफर (अज्ञात 0x0: 0x60) के साथ कोई समस्या हो सकती है? यदि हां, तो इसे ठीक करने के लिए मुझे क्या करना चाहिए?

जावा एसएसएल लॉग नीचे दिखाया गया हैं:

Listener-https, setSoTimeout(30000) called 
Worker-30, READ: SSLv3 Handshake, length = 63 
*** ClientHello, SSLv3 
RandomCookie: GMT: 1267050437 bytes = { 23, 244, 228, 68, 161, 225, 218, 222, 207, 128, 228, 138, 127, 141, 159, 63, 232, 48, 242, 240, 26, 76, 58, 158, 179, 0, 192, 140 } 
Session ID: {} 
Cipher Suites: [TLS_DHE_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, SSL_RSA_WITH_IDEA_CBC_SHA, SSL_RSA_WITH_RC4_128_SHA, SSL_RSA_WITH_RC4_128_MD5, SSL_RSA_EXPORT1024_WITH_RC4_56_SHA, Unknown 0x0:0x60, SSL_RSA_EXPORT_WITH_RC4_40_MD5] 
Compression Methods: { 0 } 
*** 
Worker-30, SEND SSLv3 ALERT: fatal, description = handshake_failure 
Worker-30, WRITE: SSLv3 Alert, length = 2 
Worker-30, called closeSocket() 
Worker-30, handling exception: javax.net.ssl.SSLHandshakeException: no cipher suites in common 
Worker-30, called close() 
Worker-30, called closeInternal(true) 
Worker-30, called close() 
Worker-30, called closeInternal(true) 

धन्यवाद, बेन

उत्तर

10

एरिक्सन के उत्तर में जोड़ना, यदि आपका प्रमाणपत्र आरएसए कुंजी-जोड़ी का उपयोग नहीं करता है, और इसके बजाय एक डीएसए कुंजी-जोड़ी का उपयोग करने के लिए बाहर निकलता है, तो इस समस्या को हल करने में कोई भी आरएसए सिफर सूट "स्टफिंग" सहायता नहीं करेगा। आपको डीएसए से संबंधित सिफर सुइट्स (उन्हें आमतौर पर डीएसएस कीवर्ड द्वारा इंगित किया जाता है) को सक्षम करने की आवश्यकता होगी, और ग्राहक भी एक ही सिफर सूट का उपयोग कर सकते हैं।

कारण यह एज केस आपकी समस्या होने का कारण हो सकता है क्योंकि गुप्त कुंजीपेशियां उत्पन्न करते समय कीटोल उपयोगिता के डिफ़ॉल्ट व्यवहार के कारण - डीएसए और आरएसए डिफ़ॉल्ट एल्गोरिदम नहीं है।

+0

ऐसा लगता है कि मेरा सर्वर एक कीस्टोर का उपयोग करता है जिसमें एक डीएसए कुंजी-जोड़ी वाला एकल प्रमाणपत्र होता है। मैं आरएसए में स्विच करने की कोशिश करूंगा और देख सकता हूं कि यह अभी काम करता है ... – Ben

+0

@ बेन, प्रगति के बारे में जानना अच्छा है। वहां गया, ऐसा किया :) –

+0

यह पूरी तरह से काम किया! आप सबसे अच्छे हैं, मैं इसके साथ बहुत लंबे समय से निपट रहा हूं। धन्यवाद धन्यवाद धन्यवाद! – Ben

4

आप कहते हैं कि ग्राहक की से कुछ अनुरोध किया है कि सिफर अपने सर्वर पर सक्षम हैं। क्या आपने उनमें से एक के साथ सफलतापूर्वक जुड़ा हुआ है? उदाहरण के लिए, ओपनएसएसएल की s_client उपयोगिता को -cipher विकल्प के साथ केवल उस सिफर सूट को निर्दिष्ट करने का प्रयास करें।

शायद प्रदाता उन सभी सिफरों का समर्थन नहीं करता जो आपको लगता है कि आपने सक्षम किया है, या शायद असीमित ताकत क्षेत्राधिकार फ़ाइलें आपके सर्वर पर सही ढंग से स्थापित नहीं हैं।

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