मैं जावा में अपाचे के HTTP क्लाइंट के साथ काम कर रहा हूं और graph.facebook.com से कनेक्ट करने का प्रयास कर रहा हूं। मुझे "SSLPeerUnverifiedException: No peer प्रमाणपत्र" त्रुटियां मिल रही हैं, इसलिए मुझे लगता है कि फेसबुक का सीए डिफ़ॉल्ट कीस्टोर में नहीं है। तो मुझे अपने सभी कीस्टोरों को उन सभी प्रमाणपत्रों के साथ बनाने की ज़रूरत है जिन्हें मैं भरोसा करना चाहता हूं, हां? इसलिए मैं प्रमाण पत्र प्राप्त करने के लिए निम्न आदेश मिला:एक श्रृंखला में सभी प्रमाणपत्र प्राप्त करना; इंटरमीडिएट और रूट दोनों
echo | openssl s_client -connect graph.facebook.com:443 2>&1 | \
sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > mycert.pem
पता नहीं है कि वहाँ क्या हो रहा है, लेकिन यह काम किया है लगता है। मैंने एक बाउंसी कैसल स्वरूपित कीस्टोर में प्रमाण जोड़ा। मैंने नई कीस्टोर का उपयोग करके एक SSLSocketFactory बनाया, लेकिन यह अभी भी काम नहीं करता है।
मेरा पहला अनुमान था, शायद मेरे पास श्रृंखला में सभी प्रमाणपत्र नहीं हैं (जाहिर है ये चीजें चेन में आती हैं)। तो मुझे कैसे पता चलेगा कि तथाकथित "इंटरमीडिएट" सीए शामिल हैं या नहीं? और मैं उन प्रमाणपत्रों को कैसे पकड़ूं? क्या मैं सही रास्ते पर भी हूं?