मैं एचटीटीपीएस/एसएसएल/टीएलएस के लिए बिल्कुल नया हूं और मैं थोड़ा उलझन में हूं कि प्रमाण पत्र के साथ प्रमाणीकरण करते समय ग्राहकों को क्या पेश करना है।जावा HTTPS क्लाइंट प्रमाणपत्र प्रमाणीकरण
मैं एक जावा क्लाइंट लिख रहा हूं जिसे किसी विशेष URL पर डेटा का एक साधारण पोस्ट करने की आवश्यकता है। वह हिस्सा ठीक काम करता है, केवल एक ही समस्या यह है कि यह HTTPS पर किया जाना चाहिए। एचटीटीपीएस भाग को संभालने में काफी आसान है (या तो HTTP क्लाइंट के साथ या जावा के अंतर्निर्मित HTTPS समर्थन का उपयोग करके), लेकिन मैं क्लाइंट प्रमाणपत्रों के साथ प्रमाणित करने पर अटक गया हूं। मैंने देखा है कि यहां पहले से ही एक बहुत ही समान प्रश्न है, जिसने अभी तक मेरे कोड के साथ प्रयास नहीं किया है (जल्द ही ऐसा कर देगा)। मेरा वर्तमान मुद्दा यह है कि - जो भी मैं करता हूं - जावा क्लाइंट प्रमाण पत्र के साथ कभी नहीं भेजता है (मैं इसे पीसीएपी डंप के साथ देख सकता हूं)।
मुझे पता है कि वास्तव में क्या ग्राहक जब प्रमाण पत्र को प्रमाणित करने सर्वर से पेश करने के लिए माना जाता है चाहते हैं (- कि अगर सब पर मायने रखती है जावा के लिए विशेष रूप)? क्या यह एक जेकेएस फ़ाइल है, या पीकेसीएस # 12? उनमें क्या होना चाहिए; बस ग्राहक प्रमाण पत्र, या एक कुंजी? यदि हां, तो कौन सी कुंजी? सभी अलग-अलग प्रकार की फाइलों, प्रमाणपत्र प्रकारों और इस तरह के बारे में काफी भ्रम है।
जैसा कि मैंने कहा है कि मैं एचटीटीपीएस/एसएसएल/टीएलएस के लिए नया हूं, इसलिए मैं कुछ पृष्ठभूमि की जानकारी भी सराहना करता हूं (निबंध होना आवश्यक नहीं है; मैं अच्छे लेखों के लिंक के लिए व्यवस्थित रहूंगा)।
"जब आप क्लाइंट प्रमाण पत्र प्रमाणीकरण के लिए प्रस्तुत करना चाहते हैं तो इन सीए में से किसी एक द्वारा हस्ताक्षरित नहीं किया गया है, यह बिल्कुल प्रस्तुत नहीं किया जाएगा"। प्रमाण पत्र प्रस्तुत नहीं किए जाते हैं क्योंकि ग्राहक जानता है कि वे सर्वर द्वारा स्वीकार नहीं किए जाएंगे। साथ ही, आपके प्रमाणपत्र को इंटरमीडिएट सीए "आईसीए" द्वारा हस्ताक्षरित किया जा सकता है, और सर्वर आपके क्लाइंट को रूट सीए "आरसीए" के साथ पेश कर सकता है, और आपका वेब ब्राउज़र आपको अभी भी अपना प्रमाणपत्र चुनने देगा, भले ही यह आईसीए द्वारा आरसीए पर हस्ताक्षर न हो। – KyleM
उपरोक्त टिप्पणी का एक उदाहरण के रूप में, ऐसी स्थिति पर विचार करें जहां आपके पास एक रूट सीए (आरसीए 1) और दो इंटरमीडिएट सीए (आईसीए 1 और आईसीए 2) है। अपाचे टॉमकैट पर यदि आप ट्रस्ट स्टोर में आरसीए 1 आयात करते हैं, तो आपका वेब ब्राउज़र आईसीए 1 और आईसीए 2 द्वारा हस्ताक्षरित सभी प्रमाण पत्र पेश करेगा, भले ही वे आपके ट्रस्ट स्टोर में न हों। ऐसा इसलिए है क्योंकि यह वह श्रृंखला है जो व्यक्तिगत चेतावनी नहीं देती है। – KyleM
"मेरी राय में, यह अजीब व्यवहार है, लेकिन मुझे यकीन है कि इसके लिए एक कारण है"। इसका कारण यह है कि आरएफसी 2246 में यही कहा गया है। इसके बारे में कुछ भी अजीब नहीं है। ग्राहकों को ऐसे प्रमाणपत्र प्रस्तुत करने की अनुमति देना जो सर्वर द्वारा स्वीकार नहीं किए जाएंगे, यह अजीब होगा, और समय और स्थान की पूरी बर्बादी होगी। – EJP