Come abilitare TLS 1.2 in Asp.Net Core 3.1

Aug 17 2020

Sto lavorando al progetto Asp.Net Core 3.1. Sto testando a livello locale. Ho iniziato a ricevere errori come

La tua connessione non è completamente sicura Questo sito utilizza una configurazione di sicurezza obsoleta, che potrebbe esporre le tue informazioni (ad esempio, password, messaggi o carte di credito) quando vengono inviate a questo sito. NET :: ERR_SSL_OBSOLETE_VERSION

La connessione utilizzata per caricare questo sito utilizzava TLS 1.0 o TLS 1.1, che sono deprecati e verranno disabilitati in futuro. Una volta disabilitato, agli utenti verrà impedito di caricare questo sito. Il server dovrebbe abilitare TLS 1.2 o successivo.

Ho persino abilitato TLS 1.2 da Program.cs come di seguito -

public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.ConfigureKestrel(serverOptions =>
                {
                    serverOptions.ConfigureHttpsDefaults(co =>
                    {
                        co.SslProtocols = SslProtocols.Tls12;
                    });
                }).UseStartup<Startup>();
            });

Ma sempre lo stesso errore.

Puoi guidarci per favore su come risolvere questo problema?

Risposte

4 Vikram Sep 02 2020 at 19:19

Per correggere l'errore, ho provato con la soluzione . Quello non ha aiutato. Il metodo che ho provato è stato suggerito qui che, come da autore, sembra funzionare solo per ASP.NET Core 2.0.

Ho esaminato le opzioni di configurazione e ho scoperto che per impostazione predefinita ASP.NET Core 3.1 utilizza TLS 1.1 e TLS 1.2 per le richieste. Quindi, non abbiamo bisogno di fare nulla dalla fine del codice.

Alla fine, sono incappato in un articolo che condivide-

Windows 7 supporta TLS 1.1 e TLS 1.2. Ma queste versioni del protocollo non sono abilitate per impostazione predefinita. Su Windows 8 e versioni successive questi protocolli sono abilitati per impostazione predefinita.

Quindi, questa era la vera causa dell'errore. Ho risolto il problema abilitando TLS 1.2 dall'editor del registro. Anche Microsoft ha suggerito la stessa soluzione .

Spero che faccia risparmiare tempo a qualcun altro.

1 RoarS. Aug 18 2020 at 00:34

Per favore corri

dotnet dev-certs https --trust

Il tuo programma # CreateHostBuilder dovrebbe assomigliare a questo (impostazione predefinita)

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>();
            });