ऐसा लगता है कि सर्वर पर लॉगिन करने के लिए पीईएम फ़ाइल क्लाइंट प्रमाण है। यदि यह क्लाइंट प्रमाण है, और ऐसा लगता है, तो कनेक्शन स्थापित करने के लिए आपको सर्वर प्रमाण पत्र को सत्यापित करने के लिए उपयोग करने के लिए एक सीए प्रमाणपत्र फ़ाइल की भी आवश्यकता होगी।
सीए केर्ट्स को ट्रस्टस्टोर में जाने की आवश्यकता है और आपके क्लाइंट केर्ट को एक कीस्टोर में जाने की आवश्यकता है। जावा में, ये दोनों जेकेएस होंगे (हालांकि इसमें पीकेसीएस 12 के लिए सीमित समर्थन है।) जेआरई के साथ-साथ प्रत्येक उपयोगकर्ता के लिए डिफ़ॉल्ट कीस्टोर/ट्रस्टस्टोर स्थान भी हैं। आप नीचे दिए गए उदाहरणों में, अपने कोड में इन फ़ाइलों के लिए बाहरी स्थान भी निर्दिष्ट कर सकते हैं। कॉमन्स-एसएसएल लाइब्रेरी जेकेएस की आवश्यकता के बिना सीधे पीईएम का समर्थन करने में सक्षम है, लेकिन मैंने इसका इस्तेमाल नहीं किया है।
जावा में इन कीस्टोरों के लिए डिफ़ॉल्ट पासफ्रेज उद्धरण के बिना "परिवर्तन" है।
This page दिखाता है कि आपको अपने कीस्टोर/ट्रस्टस्टोर में पीईएम पढ़ना है। यहां another example है।
बार जब आप अपने truststore और कीस्टोर ठीक तरह से स्थापित है, तो आप अपने JVM के लिए निम्न JSSE system properties पारित करने के लिए की जरूरत है:
javax.net.ssl.keyStore
javax.net.ssl.keyStoreType
javax.net.ssl.keyStorePassword
javax.net.ssl.trustStore
javax.net.ssl.trustStoreType
javax.net.ssl.trustStorePassword
आप उन्हें JRE के लिए डी पैरामीटर के रूप में उदाहरण के रूप में निर्दिष्ट कर सकता है या, नीचे, प्रोग्रामेटिक रूप से।
एक बार जब आप इसे समाप्त कर लेंगे, तो सॉकेट बनाने के commons-ssl example का पालन करें। साथ ही, SSLSocket के लिए जावा एपीआई है। हेरेस भी example है जो किसी भी अपाचे कॉमन्स का उपयोग नहीं करता है।
स्रोत
2009-04-06 21:54:59
डुप्लिकेट; मुझे लगता है कि प्रश्न का दूसरा संस्करण अधिक जानकारीपूर्ण है। – erickson