الوصف: تم إحباط الطلب: فشل في إنشاء قناة آمنة SSL/TLS. تعذر إنشاء قناة آمنة SSL/TLS. إنشاء الأنظمة الأساسية: Windows Server 2012، وWindows 7 Service Pack 1 (SP1)، وWindows Server 2008 R2 SP1
[حلقة] تحميل الموقع إنها أداة تنزيل للموقع بالكامل. أدخل عنوان URL للتنزيل بنقرة واحدة، وهي بسيطة وسهلة الاستخدام ولها مهام متعددة الخيوط.
قم بتعيين التعليمات البرمجية قبل HttpWebRequest
ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, errors) => true;
إذا لم تنجح الطريقة المذكورة أعلاه، فهذه مشكلة على مستوى النظام. قم بتحديث تصحيح النظام وفقًا للنظام الذي تستخدمه حاليًا.
تحديث لتمكين TLS 1.1 وTLS 1.2 كبروتوكولات الأمان الافتراضية في WinHTTP في Windows، يوفر هذا التحديث الدعم لـ Transport Layer Security (TLS) في Windows Server 2012 وWindows 7 Service Pack 1 (SP1) وWindows Server 2008 R2 SP1 1.1 ودعم TLS 1.2، يرجى الرجوع إلى الوثائق الرسمية https://support.microsoft.com/en-us/help/3140245/update-to-enable-tls-1-1-and-tls-1-2-as-default-secure-protocols-in-wi
انسخ رمز التسجيل التالي وقم باستيراده إلى السجل. أنشئ ملف txt جديدًا، وقم بتغيير اللاحقة txt إلى reg (مفتاح التسجيل)، وقم بالاستيراد (قم بعمل نسخة احتياطية قبل الاستيراد)
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp] "DefaultSecureProtocols"=dword:00000a00 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp] "DefaultSecureProtocols"=dword:00000a00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings] "SecureProtocols"=dword:00000a80 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings] "SecureProtocols"=dword:00000a80
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp] "DefaultSecureProtocols"=dword:00000800 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp] "DefaultSecureProtocols"=dword:00000800 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001 [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
يفتح PowerShell:
[Net.ServicePointManager]::SecurityProtocol [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Ssl3 -bor [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12
يتحقق السطر الأول من التعليمات البرمجية من إصدار TLS المدعوم، ويقوم السطر الثاني من التعليمات البرمجية بتعديل دعم TLS.
لن تنجح أي من الطريقتين السابقتين، لذلك يمكنك فقط استخدام الطريقة النهائية:
ملاحظة: بالنسبة لإصدارات TSL المحددة التي يدعمها كل إصدار من إصدارات Windows، يرجى الرجوع إلى المعلومات التكميلية في هذه المقالة.
الحلول موجودة، لكنها تعتمد على إصدار الإطار:
صافي 4.6 وما فوق. لا تحتاج إلى القيام بأي عمل إضافي لدعم TLS 1.2، فهو مدعوم بشكل افتراضي.
نت 4.5. يتم دعم TLS 1.2، ولكنه ليس البروتوكول الافتراضي. عليك أن تختار استخدامه. يقوم التعليمة البرمجية التالية بتعيين TLS 1.2 كإعداد افتراضي، وتأكد من تنفيذه قبل الاتصال بمورد آمن:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
نت 4.0. TLS 1.2 غير مدعوم، ولكن إذا تم تثبيت .NET 4.5 (أو أعلى) على نظامك، فلا يزال لديك خيار استخدام TLS 1.2 حتى إذا كان إطار عمل التطبيق الخاص بك لا يدعم TLS 1.2. المشكلة الوحيدة هي أن SecurityProtocolType في .NET 4.0 لا يحتوي على إدخال لـ TLS1.2، لذلك يتعين علينا استخدام التمثيل الرقمي لقيمة التعداد هذه:
ServicePointManager.SecurityProtocol =(SecurityProtocolType)3072;
.NET 3.5 أو أقل. TLS 1.2(*) غير مدعوم ولا يوجد حل بديل. قم بترقية التطبيق الخاص بك إلى أحدث إصدار من الإطار.
ملاحظة: بالنسبة للسيناريو 3، هناك أيضًا اختراق للتسجيل سيجبر 4.5 على استخدام TLS 1.2 افتراضيًا دون الحاجة إلى فرضه برمجيًا. PPS كما ذكر Christian Pop من Microsoft أدناه، هناك أحدث تصحيح متاح لـ .NET 3.5 والذي يتيح دعم TLS1.2.
يرى:
ربما يكون طول مفتاح الشهادة المقدم من الموقع 512 بت، ووفقًا لمعايير الصناعة الحالية، يجب أن يحتوي على مفتاح عام لا يقل عن 2048 بت. استجاب التحديث الأمني الخاص بشركة Microsoft في سبتمبر 2016 لهذه المشكلة من خلال الإشارة إلى أنه إذا كان طول المفتاح العام أقل من 2048 بايت (مثل RSA 512)،يمكن لنظام التشغيل Windows إلغاء اتصالات HTTPS
2012 R2 and Windows 8
2008 R2 and Windows 7
SecurityProtocolType.Tls1.0=0xC0; SecurityProtocolType.Tls1.1=0x300; SecurityProtocolType.Tls1.2=0xC00;
.net 4.0/4.5 القيمة الافتراضية: SecurityProtocolType.Tls |. SecurityProtocolType.Ssl3 .net 4.6/4.7 القيمة الافتراضية: SecurityProtocolType.Tls | SecurityProtocolType.Tls11 |
SCH_USE_STRONG_CRYPTO سيتم استخدام هذه العلامة تلقائيًا في .NET Framework 4.6 https://support.microsoft.com/en-us/help/3154518/support-for-tls-system-default-versions-included-in-the-net-framework في Win7Sp1 و.Net 3.5.1، يتم دعم TLS1.2
ServicePointManager.SecurityProtocol &= ~SecurityProtocolType.Ssl3; // إغلاق ssl3 ServicePointManager.SecurityProtocol |= (SecurityProtocolType)0x300 | (SecurityProtocolType)0xc00;
استنتاج TLS1.2 هو هذا:
تعديل التسجيل ضمن .net4
Windows Registry Editor Version 5.00 [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
هذه المقالة كتبهاتحميل الموقعتم جمع وتنظيم المحتوى، ويأتي من الإنترنت، يرجى الإشارة إلى المصدر عند إعادة الطباعة، وشكرا لكم.