如何在 Asp.Net Core 3.1 中启用 TLS 1.2
How to enable TLS 1.2 in Asp.Net Core 3.1
我正在研究 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>();
});
但还是一样的错误。
能否请您指导如何解决此问题?
为了修复错误,我尝试使用 solution. That didn't help. The method I tried was suggested here,根据作者的说法,它似乎仅适用于 ASP.NET Core 2.0。
我查看了 configuration options,发现 默认情况下 ASP.NET Core 3.1 对请求使用 TLS 1.1 和 TLS 1.2。所以,我们不需要从代码端做任何事情。
最终,我无意中发现了一个 article 共享-
Windows 7 supports TLS 1.1 and TLS 1.2. But these protocol versions
are not enabled on it by default. On Windows 8 and higher these
protocol are enabled by default.
所以,这才是错误的真正原因。我通过从注册表编辑器启用 TLS 1.2 解决了这个问题。甚至微软也提出了同样的建议 solution.
希望它能节省别人的时间。
我正在研究 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>();
});
但还是一样的错误。
能否请您指导如何解决此问题?
为了修复错误,我尝试使用 solution. That didn't help. The method I tried was suggested here,根据作者的说法,它似乎仅适用于 ASP.NET Core 2.0。
我查看了 configuration options,发现 默认情况下 ASP.NET Core 3.1 对请求使用 TLS 1.1 和 TLS 1.2。所以,我们不需要从代码端做任何事情。
最终,我无意中发现了一个 article 共享-
Windows 7 supports TLS 1.1 and TLS 1.2. But these protocol versions are not enabled on it by default. On Windows 8 and higher these protocol are enabled by default.
所以,这才是错误的真正原因。我通过从注册表编辑器启用 TLS 1.2 解决了这个问题。甚至微软也提出了同样的建议 solution.
希望它能节省别人的时间。