วิธีเปิดใช้งาน TLS 1.2 ใน Asp.Net Core 3.1
ฉันกำลังทำงานกับโครงการ 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>();
});
แต่ยังคงมีข้อผิดพลาดเดียวกัน
คุณช่วยแนะนำวิธีแก้ไขปัญหานี้ได้ไหม
คำตอบ
เพื่อแก้ไขข้อผิดพลาดที่ฉันพยายามกับการแก้ปัญหา นั่นไม่ได้ช่วยอะไร วิธีที่ฉันพยายามแนะนำที่นี่ซึ่งตามผู้เขียนดูเหมือนว่าจะใช้ได้กับ 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 จากตัวแก้ไขรีจิสทรี แม้ไมโครซอฟท์แนะนำเดียวกันการแก้ปัญหา
หวังว่าจะช่วยประหยัดเวลาของคนอื่น
กรุณาเรียกใช้
dotnet dev-certs https --trust
โปรแกรม # CreateHostBuilder ของคุณควรมีลักษณะดังนี้ (ค่าเริ่มต้น)
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});