it-swarm.asia

TLS 1.2 في .NET Framework 4.0

لدي خادم يعمل بنظام Windows Server 2008 R2 يشغل عشرة تطبيقات. NET Framework 4.0 WebForms ، وأحتاج إلى تعطيل TLS 1.0 وأقل. عندما أفعل ذلك ، تفشل جميع الاتصالات الآمنة واضطررت إلى إعادة تمكين TLS 1.0. هل هناك أي طريقة لاستخدام TLS 1.2 في بيئة إطار 4.0؟ ربما أفتقد شيئًا؟

أيضًا ، نظرًا لقيود إصدار CMS الذي نستخدمه ، لا يمكننا ترقية Framework في هذا الوقت.

57
betagreg

الطريقة الوحيدة التي وجدت فيها لتغيير هذا هي مباشرة على الكود:

في بداية التطبيق الذي قمت بتعيينه

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

يجب عليك تضمين فئة system.net

لقد قمت بذلك قبل الاتصال بخدمة ويب لأنه كان علينا حظر tls1 أيضًا.

30
Mike

إذا لم تتمكن من إضافة خاصية إلى مكتبة الفئة system.net.

بعد ذلك ، أضف Global.asax ملف:

ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072; //TLS 1.2
ServicePointManager.SecurityProtocol = (SecurityProtocolType)768; //TLS 1.1

ويمكنك استخدامه في وظيفة ، في خط البداية:

ServicePointManager.SecurityProtocol = (SecurityProtocolType)768 | (SecurityProtocolType)3072;

وهو مفيد لبوابة الدفع STRIPE ، التي تدعم TLS 1.1 و TLS 1.2 فقط.

تحرير: بعد تثبيت العديد من الأسئلة على .NET 4.5 على الخادم الخاص بي أم لا ... هنا لقطة شاشة لـ Registry على خادم الإنتاج الخاص بي:

لدي فقط .NET Framework 4.0 مثبت.

registry

69
Vikrant

قم بإجراء التغييرات التالية في السجل الخاص بك ويجب أن تعمل:

1.) . NET Framework تشفير قوي مفاتيح التسجيل

[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

2.) تأمين قناة (Schannel) TLS 1.2 مفاتيح التسجيل

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2]

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client]
"DisabledByDefault"=dword:00000000
"Enabled"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server]
"DisabledByDefault"=dword:00000000
"Enabled"=dword:00000001
50
Aditya Landge

وفقًا لـ هذا ، ستحتاج إلى تثبيت .NET 4.5. لمزيد من التفاصيل ، تفضل بزيارة صفحة الويب. Gist منه هو أنه بعد تثبيت .NET 4.5 ، ستستخدم تطبيقات 4.0 الخاصة بك 4.5 System.dll. يمكنك تمكين TLS 1.2 بطريقتين:

  • في بداية التطبيق ، أضف هذا الرمز: ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
  • اضبط مفتاح التسجيل HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319: SchUseStrongCrypto على DWORD 1
22
BrainStorm.exe

قمت بالكود في VB وتمكنت من إضافة السطر التالي إلى ملفي Global.asax.vb داخل Application_Start

ServicePointManager.SecurityProtocol = CType(3072, SecurityProtocolType)    'TLS 1.2
4
user2721607

أقابل نفس المشكلة على Windows .NET Framework 4.0 المثبت.
ولقد قمت بحل هذه المشكلة عن طريق تثبيت . NET Framework 4.6.2 .
أو يمكنك تنزيل أحدث حزمة لتجربة.

0
Krain Chen