Asp.Net Core 3.1'de TLS 1.2 nasıl etkinleştirilir

Aug 17 2020

Asp.Net Core 3.1 projesi üzerinde çalışıyorum. Yerel olarak test ediyorum. Hatalar almaya başladım

Bağlantınız tam olarak güvenli değil Bu site, bu siteye gönderildiğinde bilgilerinizi (örneğin, şifreler, mesajlar veya kredi kartları) ifşa edebilecek eski bir güvenlik yapılandırması kullanıyor. NET :: ERR_SSL_OBSOLETE_VERSION

Bu siteyi yüklemek için kullanılan bağlantı, kullanımdan kaldırılan ve gelecekte devre dışı bırakılacak olan TLS 1.0 veya TLS 1.1 kullandı. Devre dışı bırakıldığında, kullanıcıların bu siteyi yüklemesi engellenecektir. Sunucu, TLS 1.2 veya sonrasını etkinleştirmelidir.

TLS 1.2'yi Program.cs'den aşağıdaki gibi etkinleştirdim -

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

Ama yine de aynı hata.

Lütfen bu sorunun nasıl çözüleceğine rehberlik eder misiniz?

Yanıtlar

4 Vikram Sep 02 2020 at 19:19

Hatayı düzeltmek için çözümü denedim . Bu yardımcı olmadı. Burada denediğim yöntem önerildi ve yazara göre yalnızca ASP.NET Core 2.0 için çalışıyor gibi görünüyor.

Yapılandırma seçeneklerine baktım ve ASP.NET Core 3.1'in varsayılan olarak istekler için TLS 1.1 ve TLS 1.2 kullandığını gördüm . Yani, kodun sonundan yapmamıza gerek yok.

Sonunda, paylaşan bir makale buldum ...

Windows 7, TLS 1.1 ve TLS 1.2'yi destekler. Ancak bu protokol sürümleri varsayılan olarak etkinleştirilmemiştir. Windows 8 ve sonraki sürümlerde bu protokoller varsayılan olarak etkindir.

Yani, hatanın gerçek nedeni buydu. Kayıt düzenleyicisinden TLS 1.2'yi etkinleştirerek sorunu çözdüm. Microsoft bile aynı çözümü önerdi .

Umarım başkasının zamanını kurtarır.

1 RoarS. Aug 18 2020 at 00:34

Lütfen koş

dotnet dev-certs https --trust

Programınız # CreateHostBuilder şöyle görünmelidir (varsayılan)

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