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

13
我正在开发一个Asp.Net Core 3.1项目,并在本地进行测试。最近出现了以下错误:

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

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

enter image description here

我甚至已经从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>();
            });

但是仍然出现相同的错误。

您可以指导如何解决这个问题吗?

1个回答

26
为了修复错误,我尝试使用解决方案。但这并没有帮助。我尝试的方法是此处建议的,根据作者的说法,它似乎仅适用于ASP.NET Core 2.0。
我查看了配置选项,发现默认情况下ASP.NET Core 3.1仅使用TLS 1.1和TLS 1.2进行请求。因此,我们不需要从代码端进行任何操作。

enter image description here

最终,我偶然发现了一篇文章,分享了以下内容-

Windows 7支持TLS 1.1和TLS 1.2。 但这些协议版本默认情况下未启用。在Windows 8及更高版本中,默认启用这些协议。

所以,这就是错误的真正原因。我通过从注册表编辑器启用TLS 1.2来解决了这个问题。即使微软也建议使用相同的解决方案。 < p > < em >希望能为其他人节省时间。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接