में कोई सिफ़र सुइट निर्देश here बाद और प्रमाणपत्र है कि मैं पहले से गलत तरीके से बनाई निर्मित। कुछ बदल गया है क्योंकि अब मैं सर्वर पर javax.net.ssl.SSLHandshakeException: no cipher suites in common
देख रहा हूं और क्लाइंट पर javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
देख रहा हूं। त्रुटियों this questionSSLHandshakeException: आम
सर्वर ClassFileServer.java है और संबंधित ग्राहक
अच्छी तरह से खेलने के लिए दोनों सिरों हो रही पर कोई सुझाव दिए गए करने के बजाय, ध्यान दें कि मैं स्थानीय होस्ट तो मैं सिफर क्षमताओं ही कर रहे हैं ग्रहण करेंगे का उपयोग कर रहा हूँ।
अद्यतन:
ये कदम उठाएँ मैं फ़ाइलों को उत्पन्न करने के लिए प्रयोग किया है, मैं कुंजी और truststore .:
सर्वर पर भ्रमित किया जा सकता है (this गाइड द्वारा निम्नलिखित) :
$ keytool -genkey -alias serverkey -keyalg RSA -keypass [email protected] -storepass [email protected] -keystore keystore.jks
$ keytool -export -alias serverkey -storepass [email protected] -file server.cer -keystore keystore.jks
$ keytool -import -v -trustcacerts -alias clientkey -file ../client/client.cer -keystore cacerts.jks -keypass [email protected] -storepass [email protected]
क्लाइंट साइड (this गाइड द्वारा) पर:
$ keytool -genkey -alias clientkey -keyalg RSA -keypass changeit -storepass changeit -keystore keystore.jks
$ keytool -export -alias clientkey -storepass changeit -file client.cer -keystore keystore.jks
$ keytool -import -v -trustcacerts -alias serverkey -file ../server/server.cer -keystore cacerts.jks -keypass changeit -storepass changeit
के रूप में डिबगिंग शरीर को पार कर दूसरे माध्यम का इस्तेमाल करना पड़ा इस साइट की सीमा:
क्लाइंट डीबग त्रुटि:http://pastebin.com/mHCmEqAk
सर्वर डीबग त्रुटि:http://pastebin.com/YZbh7H8f
मैं बाहरी हटाया प्रविष्टियां और मुझे अभी भी एक ही त्रुटि मिल रही है। मैंने यहां टिप्पणी के प्रति कीस्टोर में संबंधित कैर्ट आयात करने का प्रयास किया: http://stackoverflow.com/questions/9547980/unable-to-find-valid-certification-path-to-requested-target-and-certificate-unkn# comment12099962_9547980। मैं अभी भी ट्रस्ट और कीस्टोरों को भ्रमित कर सकता हूं। साथ ही, कृपया ध्यान दें कि ये स्वयं हस्ताक्षरित प्रमाणपत्र हैं। – Astron
@Astron (1) क्या आपने 'testkeys' के बजाय संबंधित कीस्टोर लोड करने के लिए कोड लाइन 'ks.load (new fileInputStream ("testkeys"), passphrase) को बदल दिया है, और (2) क्या आप क्लाइंट को साथ चला सकते हैं - Djavax.net.debug = एसएसएल, हैंडशेक और परिणाम को अपनी पोस्ट में संपादित करें। – EJP
ट्रस्टस्टोर को क्लाइंट/सर्वर के लिए निर्दिष्ट करने की आवश्यकता है क्योंकि वे डिफ़ॉल्ट ट्रस्टस्टोर का उपयोग कर रहे हैं, जिससे विफलता आती है। -Djavax.net.ssl.trustStore =/home/share/samples/sockets/client/cacerts.jks -Djavax.net.ssl.trustStorePassword = क्लाइंट पर परिवर्तन और सर्वर के लिए समान संबंधित कोड सत्र को पूरा करने की अनुमति देता है। अजीब बात यह है कि एप्लिकेशन क्लाइंट प्रमाणीकरण का समर्थन करता है लेकिन क्लाइंट/सर्वर कोड में ट्रस्टस्टोर प्रावधान नहीं है। डीबगिंग जानकारी के लिए धन्यवाद, जिसने काफी मदद की! आपके उत्तर देने के लिए डिबगिंग अनुशंसा जोड़ें। – Astron