Kestrel: Standardmäßig unterstützte TLS-Protokollversionen geändert
Kestrel verwendet jetzt die Standard-TLS-Protokollversionen des Systems, anstatt Verbindungen mit den TLS 1.1- und TLS 1.2-Protokollen wie bisher einzuschränken.
Diese Änderung ermöglicht Folgendes:
- TLS 1.3 wird standardmäßig in Umgebungen verwendet, die diese unterstützen.
- TLS 1.0 wird in einigen Umgebungen wie Windows Server 2016 (Standard) verwendet, was üblicherweise nicht wünschenswert ist.
Weitere Informationen finden Sie unter dem Issue dotnet/aspnetcore#22563.
Eingeführt in Version
Version 5.0 Vorschau 6
Altes Verhalten
Kestrel erforderte, dass Verbindungen standardmäßig TLS 1.1 oder TLS 1.2 verwenden.
Neues Verhalten
Kestrel ermöglicht dem Betriebssystem, das am besten geeignete Protokoll auszuwählen und unsichere Protokolle zu blockieren. Der Standardwert für HttpsConnectionAdapterOptions.SslProtocols ist nun SslProtocols.None
statt SslProtocols.Tls12 | SslProtocols.Tls11
.
Grund für die Änderung
Die Änderung sollte bewirken, dass TLS 1.3 und zukünftige TLS-Versionen standardmäßig unterstützt werden, sobald sie verfügbar sind.
Empfohlene Aktion
Sofern in Ihrer Anwendung kein bestimmter Grund dagegen besteht, sollten Sie die neuen Standardwerte verwenden. Vergewissern Sie sich, dass Ihr System so konfiguriert ist, dass nur sichere Protokolle zulässig sind.
Führen Sie eine der folgenden Aktionen durch, um ältere Protokolle zu deaktivieren:
Deaktivieren Sie ältere Protokolle wie TLS 1.0 systemweit mithilfe der Anweisungen für Windows. Diese sind derzeit in allen Windows-Versionen standardmäßig aktiviert.
Wählen Sie die Protokolle, die Sie im Code unterstützen möchten, manuell wie folgt aus:
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>(); }); }
Leider gibt es keine API zum Ausschließen bestimmter Protokolle.
Betroffene APIs
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für