Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Kestrel verwendet nun die standardmäßigen TLS-Protokollversionen des Systems, anstatt Verbindungen mit den TLS 1.1- und TLS 1.2-Protokollen wie zuvor einzuschränken.
Diese Änderung ermöglicht Folgendes:
- TLS 1.3 wird standardmäßig in Umgebungen verwendet, die es unterstützen.
- TLS 1.0, das in einigen Umgebungen verwendet werden soll (z. B. Windows Server 2016 standardmäßig), was in der Regel nicht wünschenswert ist.
Weitere Diskussionen finden Sie unter dotnet/aspnetcore#22563.
Eingeführt in Version
5.0 Vorschau 6
Altes Verhalten
Kestrel erforderlich, dass Verbindungen TLS 1.1 oder TLS 1.2 standardmäßig verwenden.
Neues Verhalten
Kestrel ermöglicht dem Betriebssystem, das beste Zu verwendende Protokoll auszuwählen und unsichere Protokolle zu blockieren.
HttpsConnectionAdapterOptions.SslProtocols wird nun standardmäßig auf SslProtocols.None anstelle von SslProtocols.Tls12 | SslProtocols.Tls11 gesetzt.
Grund für Änderung
Die Änderung wurde vorgenommen, um TLS 1.3 und zukünftige TLS-Versionen standardmäßig zu unterstützen, sobald sie verfügbar sind.
Empfohlene Aktion
Sofern Ihre App keinen bestimmten Grund hat, diese nicht zu nutzen, sollten Sie die neuen Standardwerte verwenden. Überprüfen Sie, ob Ihr System so konfiguriert ist, dass nur sichere Protokolle zulässig sind.
Um ältere Protokolle zu deaktivieren, führen Sie eine der folgenden Aktionen aus:
Deaktivieren Sie ältere Protokolle, z. B. TLS 1.0, systemweit mit den Windows-Anweisungen. Sie ist derzeit in allen Windows-Versionen standardmäßig aktiviert.
Wählen Sie manuell aus, welche Protokolle im Code wie folgt unterstützt werden sollen:
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, um bestimmte Protokolle auszuschließen.