एक जावा वेबसर्विस क्लाइंट के विकास के दौरान मैं एक समस्या में भाग गया। वेबसेवा के लिए प्रमाणीकरण क्लाइंट प्रमाणपत्र, उपयोगकर्ता नाम और पासवर्ड का उपयोग कर रहा है। ग्राहक प्रमाणपत्र जो कंपनी से प्राप्त किया गया है, वह वेबस् सेवा के पीछे .cer
प्रारूप में है। जब मैं किसी पाठ संपादक का उपयोग करके फ़ाइल का निरीक्षण करता हूं, तो उसमें निम्नलिखित सामग्री होती है:
-----BEGIN CERTIFICATE-----
[Some base64 encoded data]
-----END CERTIFICATE-----
मैं इस फाइल को इंटरनेट एक्सप्लोरर में एक प्रमाण पत्र के रूप में आयात कर सकता हूं (पासवर्ड दर्ज किए बिना!) और इसे वेब सेवा के साथ प्रमाणित करने के लिए उपयोग करता हूं।
मैं इस प्रमाणपत्र को पहली और अंतिम पंक्ति को हटाकर, एक नई सूची में परिवर्तित करने और एक बेस 64-डिकोड चलाकर एक कीस्टोर में आयात करने में सक्षम था। परिणामी फ़ाइल को कीस्टोर ( keytool
कमांड का उपयोग करके ) में आयात किया जा सकता है । जब मैं कीस्टोर में प्रविष्टियों को सूचीबद्ध करता हूं, तो यह प्रविष्टि प्रकार की होती है trustedCertEntry
। इस प्रविष्टि प्रकार (?) की वजह से मैं इस प्रमाणपत्र का उपयोग वेबसेवा के साथ प्रमाणित करने के लिए नहीं कर सकता। मुझे लगता है कि प्रदान किया गया प्रमाण पत्र एक सार्वजनिक प्रमाण पत्र है जो प्रमाणीकरण के लिए उपयोग किया जा रहा है ...
एक वर्कअराउंड मैंने पाया है कि IE में प्रमाण पत्र आयात करना है और इसे एक .pfx
फ़ाइल के रूप में निर्यात करना है । इस फाइल को एक कीस्टोर के रूप में लोड किया जा सकता है और इसे वेबसर्विस के साथ प्रमाणित करने के लिए इस्तेमाल किया जा सकता है। हालाँकि मैं अपने ग्राहकों से हर बार जब वे एक नया प्रमाणपत्र प्राप्त करते हैं, तो इन चरणों को करने की उम्मीद नहीं कर सकते। इसलिए मैं .cer
फ़ाइल को सीधे जावा में लोड करना चाहूंगा । कोई विचार?
अतिरिक्त जानकारी: webservice के पीछे की कंपनी ने मुझे बताया कि पीसी और उपयोगकर्ता से प्रमाणपत्र का अनुरोध किया जाना चाहिए (IE और वेबसाइट का उपयोग करके) जो बाद में प्रमाण पत्र का आयात करेगा।