का उपयोग कर वेब सेवा और HTTP इंटरफ़ेस तक पहुंचना यह पहली बार है जब मुझे प्रमाण पत्र प्रमाणीकरण का उपयोग करना है। एक वाणिज्यिक भागीदार दो सेवाओं, एक एक्सएमएल वेब सेवा और एक HTTP सेवा का पर्दाफाश करता है। मुझे दोनों को .NET क्लाइंट के साथ एक्सेस करना होगा।सर्टिफिकेट प्रमाणीकरण
मैं
0. क्या कोशिश की है पर्यावरण
मैं SSLCACertificates (रूट और दो मध्यवर्ती पर) स्थापित किया है और अपने स्थानीय मशीन में क्लाइंट प्रमाणपत्र की स्थापना (7 पेशेवर जीत) certmgr.exe का उपयोग कर।
1. वेब सेवा
- के लिए मैं क्लाइंट प्रमाणपत्र (der) है।
- सेवा .NET प्रॉक्सी के माध्यम से खपत की जाएगी।
OrderWSService proxy = new OrderWSService(); string CertFile = "ClientCert_DER.cer"; proxy.ClientCertificates.Add(new System.Security.Cryptography.X509Certificates.X509Certificate(CertFile)); orderTrackingTO ot = new orderTrackingTO() { order_id = "80", tracking_id = "82", status = stateOrderType.IN_PREPARATION }; resultResponseTO res = proxy.insertOrderTracking(ot);
अपवाद पिछले बयान पर सूचना:
The request failed with an empty response
कोड यह रहा।
2. HTTP इंटरफ़ेस
- के लिए यह मैं POST पद्धति के माध्यम से कॉल करने के लिए एक HTTPS इंटरफ़ेस है।
- HTTPS अनुरोध HTTPWebRequest का उपयोग कर .NET क्लाइंट से भेजा जाएगा।
string PostData = "MyPostData"; //setting the request HttpWebRequest req; req = (HttpWebRequest)HttpWebRequest.Create(url); req.UserAgent = "MyUserAgent"; req.Method = "POST"; req.ContentType = "application/x-www-form-urlencoded"; req.ClientCertificates.Add(new System.Security.Cryptography.X509Certificates.X509Certificate(CertFile, "MyPassword")); //setting the request content byte[] byteArray = Encoding.UTF8.GetBytes(PostData); Stream dataStream = req.GetRequestStream(); dataStream.Write(byteArray, 0, byteArray.Length); dataStream.Close(); //obtaining the response WebResponse res = req.GetResponse(); r = new StreamReader(res.GetResponseStream());
अपवाद पिछले बयान पर सूचना:
The request was aborted: Could not create SSL/TLS secure channel
कोड यह रहा।
3. अंतिम कोशिश:
Error 107 (net::ERR_SSL_PROTOCOL_ERROR)
मैं अटक कर रहा हूँ: ब्राउज़र
का उपयोग करके Chrome में, प्रमाण पत्र स्थापित करने के बाद, अगर मैं दोनों यूआरएल तक पहुँचने का प्रयास मैं एक 107 त्रुटि मिलती है।
यू SSL प्रमाणपत्र athorization साथ HTTP अनुरोध नहीं कर सकते। यह https के माध्यम से किया जाना चाहिए। क्या आपको इस प्रमाणपत्र की आवश्यकता है? अगर उत्तर हाँ है तो आपको https के माध्यम से इस वेब सेवा को संचारित करना होगा। – harry180
@ हैरी 180। स्पष्ट करने के लिए धन्यवाद। मैंने सवाल संपादित किया। http प्रोटोकॉल में –
आप एक उपयोगकर्ता नाम भेजने के लिए और यह MD5 में न्यूनतम एन्क्रिप्ट होने के लिए किया है pasword जाएगा। यहां तक कि जब आप ऐसा करते हैं तो यह जानकारी अनधिकृत व्यक्तियों को लीक करना बहुत आसान है। उस तरह की जानकारी साझा करने के लिए https प्रोटोकॉल का उपयोग कर पुनर्विचार करें। – harry180