2016-08-31 6 views
5

वर्तमान में मुझे कोई समस्या है और इस पर सख्त जवाब नहीं मिल रहा है।सेवापॉइंट प्रबंधक क्यों। सुरक्षा मशीन प्रोटोकॉल अलग-अलग मशीनों पर डिफ़ॉल्ट मान अलग है?

मेरे पास एएसपी.नेट एमवीसी 5 एप्लिकेशन लक्ष्यीकरण 4.6.1 ढांचा है और इसका लक्ष्य तीसरे पक्ष एपीआई के साथ काम करना है जो टीएलएस 1.1/टीएलएस 1.2 प्रोटोकॉल द्वारा सुरक्षित हैं।

2 वातावरण पर अपने आवेदन को चलाने के लिए प्रयास किया है:

  • अपने स्थानीय मशीन Windows 10 नेट 4.6.2 फ्रेमवर्क, आईआईएस एक्सप्रेस के साथ;
  • सर्वर मशीन विंडोज सर्वर 2012 .NET 4.6.1, आईआईएस 8.0 के साथ;

मुद्दा यह है कि में है जब मैं इसे स्थानीय स्तर पर शुरू ServicePointManager.SecurityProtocol डिफ़ॉल्ट मान Ssl3, Tls के लिए सेट है, तो मैं एपीआई लक्षित नहीं कर सकते और आवेदन पर यह कोड करने के लिए है TLS 1.1/TLS 1.2 उपयोग करने के लिए शुरू करते हैं: ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12

जब सर्वर डिफ़ॉल्ट मान ServicePointManager.SecurityProtocol पर चलता है तो Tls, Tls11, Tls12 पर सेट किया जाता है, इसलिए यह अच्छी तरह से काम करता है।

.NET Framework 4.6 या ऊपर के संस्करणों पर चल रहे प्रलेखन अनुप्रयोगों के अनुसार डिफ़ॉल्ट रूप से TLS 1.1/TLS 1.2 का उपयोग करना है, यह दूरस्थ मशीन पर कैसा है।

क्यों ServicePointManager.SecurityProtocol के डिफ़ॉल्ट मान अलग हैं? क्या ऐसा इसलिए है क्योंकि .NET Framework कॉन्फ़िगरेशन? या शायद रजिस्ट्री सेटिंग्स? मैंने इसके माध्यम से खोज की है लेकिन मुझे कोई जवाब नहीं मिला।

+4

यह क्यों फर्क पड़ता है क्या * डिफ़ॉल्ट * मूल्य है? अगर आपको कुछ * विशिष्ट * सेटिंग्स की ज़रूरत है, तो बस उन्हें वैसे भी सेट करना सबसे सरल चीज जैसा प्रतीत होता है। –

उत्तर

7

MSDN: ServicePointManager.SecurityProtocol Property:

ध्यान दें कि कोई डिफ़ॉल्ट मान इस संपत्ति के लिए सूचीबद्ध किया गया है उद्देश्य पर,। सुरक्षा परिदृश्य लगातार बदलता है, और ज्ञात कमजोरियों से बचने के लिए समय के साथ डिफ़ॉल्ट प्रोटोकॉल और सुरक्षा स्तर बदल जाते हैं। व्यक्तिगत मशीन कॉन्फ़िगरेशन के आधार पर डिफ़ॉल्ट भिन्न होंगे, और किस सॉफ्टवेयर पर स्थापित किया गया है, और किस पैच पर लागू किया गया है।

MSDN Blogs: Support for SSL/TLS protocols on Windows:

विंडोज़ पर SSL/TLS प्रोटोकॉल के लिए समर्थन Schannel घटक से जुड़ा हुआ है। इसलिए, यदि एक विशिष्ट ओएस संस्करण एसएसएल/टीएलएस संस्करण का समर्थन नहीं करता है, तो इसका मतलब है कि यह असमर्थित बनी हुई है।

MSDN: Cipher Suites in TLS/SSL (Schannel SSP)

विभिन्न विंडोज संस्करणों अलग टीएलएस सिफ़र सुइट और प्राथमिकता क्रम समर्थन करते हैं। डिफ़ॉल्ट क्रम के लिए संबंधित Windows संस्करण देखें जिसमें उन्हें Microsoft Schannel प्रदाता द्वारा चुना गया है।

दूसरे शब्दों में: यह आपके विंडोज संस्करण और उसके पैच स्तर द्वारा निर्धारित किया जाता है।

लेकिन जैसे @ डेमियन ने कहा, आप डिफ़ॉल्ट स्तर क्या परेशान करेंगे?

+0

उत्तर दोस्तों के लिए धन्यवाद। मैं इसी तरह के वातावरण पर इस तरह के मतभेदों के कारण थोड़ा उलझन में था। मैंने मूल्यों को स्पष्ट रूप से सेट किया है –

1

हम नीचे दिए गए रजिस्ट्री को अपडेट कर सकते हैं ताकि नेट फ्रेमवर्क TLS1.1 \ TLS1.2 का उपयोग कर सके, पुनरारंभ की आवश्यकता है।

मैं कोशिश की है, और मेरे मशीन में ServicePointManager.SecurityProtocol का मान "SSL3, टीएलएस" से "टीएलएस, Tls11, Tls12" में बदल गया:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319] 
"SchUseStrongCrypto"=dword:00000001 

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319] 
"SchUseStrongCrypto"=dword:00000001 
संबंधित मुद्दे