c# SoapHttpClientProtocol और TLS 1.2-ग्राहक और सर्वर संचार नहीं कर सकते, क्योंकि उनके पास एक सामान्य एल्गोरिथ्म नहीं है




ssl wsdl (2)

यदि आपका क्लाइंट एप्लिकेशन .NET फ़्रेमवर्क 4.5.2 या उससे कम के मुकाबले संकलित हुआ था, तो डिफ़ॉल्ट रूप से सेवापॉइंट मैनेजर. SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls को SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls आरंभ किया गया है SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls (केवल SSL 3.0 और TLS 1.0), इसलिए यह दूरस्थ सर्वर से कनेक्ट नहीं हो पाएगा जिसकी आवश्यकता है TLS 1.2।

आपके क्लाइंट एप्लिकेशन को टीएलएस 1.2 का उपयोग करने की अनुमति देने के कई तरीके हैं:

  • अपने क्लाइंट एप्लिकेशन को .NET Framework 4.6 या बाद के संस्करण के साथ फिर से कंपाइल करें। (विजुअल स्टूडियो में, अपने प्रोजेक्ट के प्रॉपर्टी पेज खोलें, एप्लिकेशन टैब पर जाएं, और लक्ष्य फ़्रेमवर्क बदलें।)
  • क्लाइंट मशीन पर, RegEdit.exe चलाएं, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ .NETFramework\v4.0.30319 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ .NETFramework\v4.0.30319 , एक DWORD (32-बिट) मान को SchUseStrongCrypto नाम SchUseStrongCrypto , और इसे 1 पर सेट करें। (यह ध्वज ServicePointManager.SecurityProtocol Tls | Tls11 | Tls12 को आरंभ करने के लिए।)
  • जब आपका क्लाइंट एप्लिकेशन शुरू होता है, तो टीएलएस 1.2 चालू करें: ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls12; टी 12 ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls12;

अपने प्रॉक्सी वर्ग को पुनर्जन्म करने की कोई आवश्यकता नहीं है क्योंकि यह टीएलएस प्रोटोकॉल या साइफर पर बातचीत करने के लिए ज़िम्मेदार नहीं है।

इस बारे में बहुत से पद हैं और मैंने उन्हें डराया है, लेकिन फिर भी कोई समाधान नहीं है मुझे उम्मीद है कि कोई मुझे सही दिशा में बता सकता है

एक दूरदराज के प्रदाता से कनेक्ट करने के लिए अब हमारे पास एक आवश्यकता है जो कि TLS 1.2 का उपयोग करने के लिए है। इसलिए मैंने Windows Server 2016 को स्थापित किया है और इसे आवश्यकतानुसार कॉन्फ़िगर किया है:

मुझे पता है कि रिमोट सर्वर टीएलएस 1.2 चल रहा है और यह हाइलाइट सिफर का समर्थन करता है।

प्रदाता द्वारा प्रदान की गई WSDL द्वारा उत्पन्न सी # प्रॉक्सी क्लास का उपयोग करके हम रिमोट एंड पॉइंट से कनेक्ट करते हैं - इससे पहले कि वे अपने अंत को टीएलएस (सिस्टम। वेब। सर्विसेज। प्रोटोकॉल। एसएपीएचटीपी क्लायंटप्रोटोकॉल) में बदल दें।

जब मैं प्रॉक्सी का उपयोग कर कनेक्ट करता हूं, तो मुझे एक अपवाद मिलता है जिसमें आंतरिक अपवाद होता है "क्लाइंट और सर्वर संचार नहीं कर सकते, क्योंकि उनके पास एक समान एल्गोरिदम नहीं है"।

मैं कहीं भी उस सेवापॉइंट मैनेजर को नहीं देख सकता। सुरक्षाप्रतिलोक तो मैं मान रहा हूँ कि एनएटी 1.2 टीएलएस उठा रही है क्योंकि यह केवल सक्षम प्रोटोकॉल है? पता नहीं कैसे यह सिफर कर रहा है

क्या कोई मुझे बता सकता है कि मैं इसे ठीक करने का प्रयास कैसे करूँ? यदि संभव हो तो मैं डब्लूएसडीएल प्रॉक्सी क्लास को पुन: उत्पन्न नहीं करना चाहता।


मुझे एक वेबसाइट से TLS 1.0 निकालने का यह मुद्दा था जो वेब सेवा से कनेक्ट हो रहा था। मेरे लिए यह httpRuntime जो वेब सेवा के वेब। कॉन्फ़िग में 4.5.1 पर था। सेवा को 4.6.1 में बदल दिया गया था, वेबरेकिंग में httpRuntime के संस्करण को 4.6.1 में बदलकर समस्या को ठीक किया गया था। वेब साइट ने टीएसएल को webservice पर स्थापित करने की कोशिश की और केवल 1.2 और 1.1 उपलब्ध हैं। वेब सेवा केवल 1.0 का समर्थन करती है जिससे त्रुटि उत्पन्न हुई।







wsdl