วิธีเปิดใช้งาน TLS 1.2 ใน Asp.Net Core 3.1

Aug 17 2020

ฉันกำลังทำงานกับโครงการ Asp.Net Core 3.1 ฉันกำลังทดสอบในพื้นที่ ฉันเริ่มได้รับข้อผิดพลาดเป็น

การเชื่อมต่อของคุณไม่ปลอดภัยอย่างสมบูรณ์ไซต์นี้ใช้การกำหนดค่าความปลอดภัยที่ล้าสมัยซึ่งอาจเปิดเผยข้อมูลของคุณ (เช่นรหัสผ่านข้อความหรือบัตรเครดิต) เมื่อส่งไปยังไซต์นี้ NET :: ERR_SSL_OBSOLETE_VERSION

การเชื่อมต่อที่ใช้โหลดไซต์นี้ใช้ TLS 1.0 หรือ TLS 1.1 ซึ่งเลิกใช้แล้วและจะปิดใช้งานในอนาคต เมื่อปิดใช้งานผู้ใช้จะถูกป้องกันไม่ให้โหลดไซต์นี้ เซิร์ฟเวอร์ควรเปิดใช้งาน TLS 1.2 หรือใหม่กว่า

ฉันได้เปิดใช้งาน TLS 1.2 จาก Program.cs ดังต่อไปนี้ -

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

แต่ยังคงมีข้อผิดพลาดเดียวกัน

คุณช่วยแนะนำวิธีแก้ไขปัญหานี้ได้ไหม

คำตอบ

4 Vikram Sep 02 2020 at 19:19

เพื่อแก้ไขข้อผิดพลาดที่ฉันพยายามกับการแก้ปัญหา นั่นไม่ได้ช่วยอะไร วิธีที่ฉันพยายามแนะนำที่นี่ซึ่งตามผู้เขียนดูเหมือนว่าจะใช้ได้กับ ASP.NET Core 2.0 เท่านั้น

ฉันตรวจสอบตัวเลือกการกำหนดค่าและพบว่าโดยค่าเริ่มต้น ASP.NET Core 3.1 ใช้ TLS 1.1 และ TLS 1.2สำหรับคำขอ ดังนั้นเราไม่จำเป็นต้องทำอะไรจากจุดสิ้นสุดของโค้ด

ในที่สุดฉันก็เจอบทความที่แบ่งปัน -

Windows 7 รองรับ TLS 1.1 และ TLS 1.2 แต่เวอร์ชันโปรโตคอลเหล่านี้ไม่ได้เปิดใช้งานตามค่าเริ่มต้น ใน Windows 8 ขึ้นไปโปรโตคอลเหล่านี้จะเปิดใช้งานโดยค่าเริ่มต้น

นี่คือสาเหตุที่แท้จริงของข้อผิดพลาด ฉันแก้ไขปัญหาโดยเปิดใช้งาน TLS 1.2 จากตัวแก้ไขรีจิสทรี แม้ไมโครซอฟท์แนะนำเดียวกันการแก้ปัญหา

หวังว่าจะช่วยประหยัดเวลาของคนอื่น

1 RoarS. Aug 18 2020 at 00:34

กรุณาเรียกใช้

dotnet dev-certs https --trust

โปรแกรม # CreateHostBuilder ของคุณควรมีลักษณะดังนี้ (ค่าเริ่มต้น)

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