2010-05-04 3 views
8

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

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

उत्तर

5

हां यह संभव है।

कुछ कोड here है जो मैंने पहले उपयोग किया है। मुझे इसे जो करना चाहता था उसे करने के लिए मुझे संशोधित करना पड़ा और मुझे संदेह है कि आप भी करेंगे लेकिन यह आपको बंद कर देगा - आप एक कुंजी आयात करने की कोशिश नहीं कर रहे हैं, इसलिए सैद्धांतिक रूप से आप चीजों को सरल बनाने में सक्षम होना चाहिए। किसी भी मामले में आप एक विचार प्राप्त कर सकते हैं कि आपको क्या चाहिए।

java.security.KeyStore के लिए जेडीके जावाडॉक भी बहुत उपयोगी है।

0

आप अपना स्वयं का सीए क्यों नहीं बनाते और इसके साथ अपने प्रमाणपत्रों पर हस्ताक्षर क्यों नहीं करते? तो आपको बस मशीनों पर सीए का प्रमाण पत्र स्थापित करना होगा और उस सीए द्वारा हस्ताक्षरित प्रत्येक प्रमाण पत्र मान्य होगा।

+0

क्योंकि प्रत्येक उपयोगकर्ता अपना स्वयं का सर्वर चलाएगा और प्रमाणीकरण के लिए अपने प्रमाण पत्र की आवश्यकता होगी (इसलिए कोई दूसरे से अलग है)। मुझे लगता है कि मैं एक सीए बना सकता हूं, लेकिन यह स्थापना प्रक्रिया को बहुत जटिल करेगा, जिसके लिए उपयोगकर्ता को मुझे प्रमाणित उत्पादन अनुरोध करने की आवश्यकता होती है। – directedition

0

आपको ऐसा करने की आवश्यकता क्यों होगी, आप यह सत्यापित नहीं कर रहे हैं कि क्लाइंट वह कहता है कि वे केवल कॉमर्स को एन्क्रिप्ट करने के लिए केवल कर्ट का उपयोग कर रहे हैं, इसलिए एक कस्टम ट्रस्ट मैनेजर जो आपको सभी कर्टों की आवश्यकता है। आप जो पूछ रहे हैं वह संभव है और स्मृति से प्रमाणपत्रों को प्रमाणित करने और उन्हें कीस्टोर में स्टोर करने के लिए कस्टम ट्रस्ट मैनेजर भी शामिल है। मुझे विवरण याद नहीं है, लेकिन कम से कम आप जानते हैं कि ऐसा करना संभव है।