如何在 Asp.Net Core 3.1 中启用 TLS 1.2

Vik*_*ini 8 tls1.2 asp.net-core

我正在研究 Asp.Net Core 3.1 项目。我在本地测试。我开始收到错误

您的连接不完全安全 此站点使用过时的安全配置,当您的信息(例如,密码、消息或信用卡)发送到此站点时,该配置可能会暴露您的信息。NET::ERR_SSL_OBSOLETE_VERSION

用于加载此站点的连接使用 TLS 1.0 或 TLS 1.1,它们已被弃用,将来会被禁用。一旦禁用,用户将无法加载此站点。服务器应启用 TLS 1.2 或更高版本。

在此处输入图片说明

我什至从 Program.cs 启用了 TLS 1.2,如下所示 -

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

但还是同样的错误。

你能指导如何解决这个问题吗?

Vik*_*ini 10

为了修复错误,我尝试了解决方案。那没有帮助。此处建议我尝试的方法,据作者称,该方法似乎仅适用于 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 解决了这个问题。甚至微软也提出了同样的解决方案

希望它可以节省别人的时间。