Kestrel: Varsayılan desteklenen TLS protokolü sürümleri değiştirildi
Kestrel artık daha önce olduğu gibi TLS 1.1 ve TLS 1.2 protokolleriyle bağlantıları kısıtlamak yerine sistem varsayılan TLS protokol sürümlerini kullanıyor.
Bu değişiklik şunları sağlar:
- TLS 1.3, onu destekleyen ortamlarda varsayılan olarak kullanılır.
- TLS 1.0'ın bazı ortamlarda (varsayılan olarak Windows Server 2016 gibi) kullanılması genellikle tercih edilmez.
Tartışma için bkz. sorun dotnet/aspnetcore#22563.
Sürüm kullanıma sunulmuştur
5.0 Önizleme 6
Eski davranış
Kestrel, bağlantıların varsayılan olarak TLS 1.1 veya TLS 1.2 kullanmasını gerektirir.
Yeni davranış
Kestrel, işletim sisteminin kullanılacak en iyi protokolü seçmesini ve güvenli olmayan protokolleri engellemesini sağlar. HttpsConnectionAdapterOptions.SslProtocols şimdi yerine varsayılan olarak SslProtocols.None
SslProtocols.Tls12 | SslProtocols.Tls11
kullanılır.
Değişiklik nedeni
TlS 1.3 ve gelecekteki TLS sürümlerinin varsayılan olarak kullanılabilir duruma gelmesi için değişiklik yapıldı.
Önerilen eylem
Uygulamanızın bunu yapmak için belirli bir nedeni yoksa, yeni varsayılan değerleri kullanmanız gerekir. Sisteminizin yalnızca güvenli protokollere izin verecek şekilde yapılandırıldığını doğrulayın.
Eski protokolleri devre dışı bırakmak için aşağıdaki eylemlerden birini yapın:
Windows yönergeleriyle TLS 1.0 gibi eski protokolleri sistem genelinde devre dışı bırakın. Şu anda tüm Windows sürümlerinde varsayılan olarak etkindir.
Kodda desteklemek istediğiniz protokolleri aşağıdaki gibi el ile seçin:
using System.Security.Authentication; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Hosting; public class Program { public static void Main(string[] args) => CreateHostBuilder(args).Build().Run(); public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseKestrel(kestrelOptions => { kestrelOptions.ConfigureHttpsDefaults(httpsOptions => { httpsOptions.SslProtocols = SslProtocols.Tls12 | SslProtocols.Tls13; }); }); webBuilder.UseStartup<Startup>(); }); }
Ne yazık ki belirli protokolleri dışlayan bir API yoktur.
Etkilenen API’ler
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin