2011-10-26 6 views
5

मेरे आवेदन में मेरे पास ऐसी स्थितियां हैं जिनमें मुझे उन सर्वरों के लिए अनुरोध करने की आवश्यकता है जिनके पास स्वयं हस्ताक्षरित प्रमाणपत्र हैं। मैं केवल उस विशेष अनुरोध के लिए प्रमाण पत्र सत्यापन अक्षम करने में सक्षम होना चाहता हूं।एक अनुरोध के लिए प्रमाणपत्र सत्यापन अक्षम करना

मुझे पता है कि मैं ServicePointManager.ServerCertificateValidationCallback को कॉलबैक विधि को इंगित करने के लिए प्रमाणित प्रमाणपत्र को अक्षम कर सकता हूं और बस सत्य लौटा सकता हूं। हालांकि यह पूरे एप्लिकेशन के लिए प्रमाण पत्र सत्यापन अक्षम करता है जिसे मैं app.config में सेट करके बस कर सकता हूं।

हालांकि मैं पूरे एप्लिकेशन के लिए अक्षम नहीं करना चाहता बल्कि एक व्यक्तिगत अनुरोध के लिए अक्षम करना चाहता हूं। क्या यह संभव है?

वर्ग के साथ मैं काम कर रहा हूँ SmtpClient

उत्तर

0

को अक्षम करने से प्रमाण पत्र सत्यापन आम तौर पर एक बुरा विचार है। आप सिस्टम पर या अपने आवेदन में विश्वसनीय प्रमाण पत्र के रूप में अपना कस्टम प्रमाणपत्र क्यों नहीं जोड़ते हैं।

AFAIR यह किया जा सकता है उदा। अपने X509CertificateValidator को लागू करके। बस अपने आवेदन में कस्टम प्रमाणपत्र एम्बेड करें और X509CertificateValidator में तुलना करें यदि दोनों बराबर हैं।

यह भी देखें: How safe is my custom SSL verification logic to handle excepted RemoteCertificateNameMismatch?

+0

प्रतिक्रिया के लिए रॉबर्ट थैक्स। हमारे आवेदन के कुछ हिस्सों में हम यह अनुमति नहीं देना चाहते हैं कि प्रमाणपत्र प्रमाणित नहीं है या नहीं। हालांकि इस विशेष मामले में जिसमें हम ईमेल भेज रहे हैं, हम एसएसएल का उपयोग करना चाहते हैं, लेकिन हम पाते हैं कि कई क्लाइंटों ने स्वयं-हस्ताक्षरित SSL प्रमाण पत्र प्राप्त किए हैं जिसके परिणामस्वरूप ईमेल भेजने में विफलता आती है। दुर्भाग्यवश यह अक्सर एसएमटीपी सर्वर के मामले में होता है और यह हर एसएमटीपी सर्वर के लिए प्रमाण पत्र आयात करने के लिए एक दुःस्वप्न होगा जो असफल रहा है, इसलिए हम एसएमटीपी को प्रमाणपत्र विफलताओं और हमारे आवेदन के अन्य हिस्सों को अभी भी लागू करने की क्षमता स्वीकार करने की अनुमति देना चाहते हैं। –

+0

फिर आपको एंड्रॉइड "के 9" मेल-क्लाइंट में उपयोग की जाने वाली सत्यापन योजना का उपयोग करना चाहिए, जिसमें बिल्कुल वही समस्या है। पहली बार यह अविश्वसनीय प्रमाणपत्र से मुकाबला करता है, यह दिखाता है कि कुछ सर्टिफिकेट विवरण उपयोगकर्ता से पूछते हैं कि क्या वह इस प्रमाणपत्र पर भरोसा करता है। यदि उपयोगकर्ता हां AFAIR का उत्तर देता है तो यह प्रमाण पत्र हैश को इस प्रमाणपत्र को मान्य के रूप में चिह्नित करने वाली सेटिंग्स फ़ाइल में सहेजता है। आंतरिक प्रमाणपत्र सत्यापनकर्ता तब सभी नियमित प्रमाणपत्रों को सहेजता है और सहेजे गए हैश के साथ एक को स्वीकार करता है। सभी के लिए काम करता है और अभी भी सापेक्ष सुरक्षित है। – Robert

+0

दुर्भाग्य से यह एक सेवा है इसलिए उपयोगकर्ता इंटरफ़ेस नहीं है और इस प्रकार कोई संवाद नहीं है जिसे उपयोगकर्ता प्रमाण पत्र स्वीकार करने के लिए क्लिक कर सकता है। –

संबंधित मुद्दे