.NET framework sürüm 3.5 SP1 ve daha önceki sürümlerde, Aktarım Katmanı Güvenliği (TLS) sistemi sürümleri varsayılan bir şifreleme protokolü olarak kullanmak üzere uygulamaları için destek sağlamadı. Bu güncelleştirme, .NET Framework 3.5 SP1 içinde v1.2 TLS kullanımını etkinleştirir.
Not bu içeriği Windows Update sitesinde kullanılabilir yapıldı. İçerik elde etmek için en son .NET Framework güncelleştirmeleri Windows Update tarayın. Sisteminizin tam olarak Windows Update güncel ise, başka bir işlem yapmanıza gerek yoktur.
Çözüm
Karşıdan yükleme bilgileri
Aşağıdaki dosyalar Microsoft Download Center yüklenebilir:x86 tabanlı paketini şimdi karşıdan yükle.
X64 tabanlı paketini şimdi karşıdan yükle. Biz aşağıdaki geliştirmeleri Bu alanda yapmış olduğunuz:
-
Aşağıdaki kayıt defteri anahtarları işletim sistemini kullanacak biçimde ayarlayabilirsiniz SSL ve TLS için kodlanmış yerine .NET Framework yönetilen uygulamayı çalıştıran bilgisayarda için varsayılan ayarları varsayılan olarak ayarlanır.
-
64-bit işletim sistemleri için:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]"SystemDefaultTlsVersions"=dword:00000001 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727]"SystemDefaultTlsVersions"=dword:00000001
-
32-bit işletim sistemleri için:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]"SystemDefaultTlsVersions"=dword:00000001
NotUygulama ServicePointManager.SecureProtocol kodu veya yapılandırma dosyaları belirli bir değere ayarlayın ya da belirli bir SslProtocols enum, kayıt defteri ayarını belirtmek için SslStream.AuthenticateAs* API'lerini kullanır. davranış oluşmaz.
-
-
Ayrıca, .NET gösterirken TLS v1.2, TLS v1.1 yanı sıra, ServicePointManager.SecurityProtocol özelliği için işletim sistemi varsayılan değerleri ayarlamak için bir seçenek olarak kullanabileceğiniz SslProtocolsExtensions numaralandırma ekledik Framework sürüm 2.0 SP2. (Uzantıları'nı kullanma hakkında bilgi için Geliştirici Kılavuzu bölümüne bakın.) Not: Aktarım Katmanı Güvenliği (TLS) Protokolü sürüm 1.0'dan daha yeni Windows Vista SP2 ve Windows Server 2008 SP2'yi desteklemez. Bu protokoller ServicePointManager.SecurityProtocol özelliğinde ayarlanmış olsa bile, yönetilen .NET Framework 2.0 SP2 uygulamaların Windows Vista SP2 veya Windows Server 2008 SP2 çalıştıran TLS 1.2 veya TLS 1.1 kullanamazsınız.
Microsoft Destek dosyalarını indirme hakkında daha fazla bilgi edinmek için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasına tıklayın:
119591 Microsoft destek dosyaları çevrimiçi hizmetlerden nasıl edinilir? Microsoft bu dosyada virüs taraması yapmıştır. Microsoft, dosyanın kullanıma sunulduğu tarihteki en güncel virüs tarama yazılımını kullanmıştır. Dosya, üzerinde herhangi bir yetkisiz değişiklik yapılmasını engellemeye yardım eden geliştirilmiş güvenliğe sahip sunucularda depolanır.
Geliştirici Kılavuzu
Yeni uzantılar tanımı bulunan aşağıdaki dosyalar şunlardır:
-
SecurityProtocolTypeExtensions.csnamespace System.Net{using System.Security.Authentication;public static class SecurityProtocolTypeExtensions{public const SecurityProtocolType Tls12 = (SecurityProtocolType)SslProtocolsExtensions.Tls12;public const SecurityProtocolType Tls11 = (SecurityProtocolType)SslProtocolsExtensions.Tls11;public const SecurityProtocolType SystemDefault = (SecurityProtocolType)0;}}
-
SslProtocolsExtensions.csnamespace System.Security.Authentication{public static class SslProtocolsExtensions{public const SslProtocols Tls12 = (SslProtocols)0x00000C00;public const SslProtocols Tls11 = (SslProtocols)0x00000300;}}
TLS v1.2 için destek eklemek için kaynak dosyalarını projenize dahil ve Protokolü sürüm aşağıdaki yöntemleri kullanarak ayarlayın:
-
ServicePointManager tabanlı API'leri kullanan uygulamalar iletişim kuralını kullanarak ayarlayabileceğiniz follows:System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolTypeExtensions.Tls12;
-
SslProtocols değeri SslProtocolsExtensions.SslStream AuthenticateAsClient (dize, X509CertificateCollection, SslProtocols, Boolean) aşırı kullanan uygulamalar ayarlayabilirsiniz.Tls12.
Uygulamada SslProtocols değeri SslProtocols.Noneayarlanır ve ilk paragrafta sözü edilen kayıt kümesi, sistem varsayılan davranışı Windows işletim sistemi sürümüne bağlı olacaktır seçilir. Ayrıca .NET Framework 3.5 SP1 ile TLS v1.2 desteğini etkinleştirmek için uygulama kodu değiştirirken oluşan aşağıdaki özel durumları işlemek nerede bu düzeltme ekini değil dağıtılan bilgisayarlarda emin olmalısınız:
-
Düzeltme yüklü değilse, ServicePointManager-tabanlı API (HTTP, FTP, SMTP) oluşturur "System.NotSupportedException: İstenen güvenlik protokolü desteklenmiyor." uygulama çağırdığında ServicePointManager.SecurityProtocol yeni değerini ayarlamak için.
-
Düzeltme yüklü değilse, SslStream-AuthenticateAs * API'leri birini çağırırken tabanlı API oluşturur:
System.ArgumentException: Belirtilen değer 'SslProtocolType' numaralandırmasında geçerli değil. Parametre adı: sslProtocolType
NotSslStream yalnızca, Tls12, Tls11 ile herhangi bir varolan Tls, Ssl3, Ssl2 birleşimi için (örneğin: Tls12 | Tls11 | TLS) varolan iletişim kuralları için eski sürümü sessizce (örneğin: Tls) düzeltme eki olmadan bir sistemde. Bu özel durumun üretilmesini olmadan Tls ile bağlanır.
Ek Bilgi
İşletim sistemi varsayılan olarak TLS v1.1 veya v1.2 etkinleştirmek için adresindeki yönergeleri izleyin https://technet.microsoft.com/en-us/library/dn786418(v=ws.11).aspx#BKMK_SchannelTR_TLS12.Not TLS v1.1 ve v1.2 Windows Vista'da kullanılabilir değil veya işletim sistemini devre dışı bırakmak olan Windows Server 2008.If kümesi tarafından belirtilen kayıt defteri anahtarını aşağıdaki kayıt defteri anahtarını ekleyerek yapılabilir daha önce belirli uygulamalar için varsayılan olarak:HKEY_LOCAL_MACHINE\SOFTWARE\[Wow6432Node\]Microsoft\.NETFramework\v2.0.50727\System.Net.ServicePointManager.SystemDefaultTlsVersions<<Full path of the .exe for the file>> DWORD 0C:\MyApp\MyApp.exe DWORD 0
TLS Tanıtımı v1.2TLS v1.2 hakkında daha fazla bilgi için bkz. SystemDefaultTlsVersions .NET kayıt defteri anahtarı etkinleştirdikten sonra farklı bir davranış aşağıdaki tabloda gösterildiği gibi Windows'un her sürümü için oluşur.
Windows sürümü |
SSL2 istemci |
SSL2 sunucu |
SSL3 istemci |
SSL3 sunucu |
TLS 1.0 istemcisi |
TLS 1.0 sunucu |
TLS 1.1 istemci |
TLS 1.1 sunucusu |
TLS 1.2 istemcisi |
TLS 1.2 sunucu |
---|---|---|---|---|---|---|---|---|---|---|
Windows Vista SP2 ve Windows Server 2008 SP2 |
Devre Dışı |
Etkin |
Etkin |
Etkin |
Etkin |
Etkin |
N/A |
N/A |
N/A |
N/A |
Windows 7 SP1 ve Windows Server 2008 R2 SP1 |
Devre Dışı |
Etkin |
Etkin |
Etkin |
Etkin |
Etkin |
Devre Dışı |
Devre Dışı |
Devre Dışı |
Devre Dışı |
Windows Server 2012 |
Devre Dışı |
Devre Dışı |
Etkin |
Etkin |
Etkin |
Etkin |
Etkin |
Etkin |
Etkin |
Etkin |
8.1 Windows ve Windows Server 2012 R2 |
Devre Dışı |
Devre Dışı |
Etkin |
Etkin |
Etkin |
Etkin |
Etkin |
Etkin |
Etkin |
Etkin |
Windows 10 |
Devre Dışı |
Devre Dışı |
Etkin |
Etkin |
Etkin |
Etkin |
Etkin |
Etkin |
Etkin |
Etkin |
Windows 10 (1511) |
Devre Dışı |
Devre Dışı |
Etkin |
Etkin |
Etkin |
Etkin |
Etkin |
Etkin |
Etkin |
Etkin |
Windows 10 (1607) ve Windows Server 2016 |
N/A |
N/A |
Devre Dışı |
Devre Dışı |
Etkin |
Etkin |
Etkin |
Etkin |
Etkin |
Etkin |