如何解决如何在Asp.Net Core 3.1中启用TLS 1.2
我正在研究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。那没有帮助。建议使用我尝试过的方法here,据作者看来,该方法似乎仅适用于ASP.NET Core 2.0。
我查看了configuration options,发现默认情况下,ASP.NET Core 3.1使用TLS 1.1和TLS 1.2 进行请求。因此,我们从代码结束就不需要做任何事情。
最终,我偶然发现了一个共享{3>
Windows 7支持TLS 1.1和TLS 1.2。 但是这些协议版本 默认情况下未启用该功能。在Windows 8及更高版本上, 协议默认为启用。
因此,这是导致错误的真正原因。我通过从注册表编辑器启用TLS 1.2来解决此问题。甚至Microsoft也建议使用相同的article。
希望它可以节省别人的时间。
,请运行
dotnet dev-certs https --trust
您的Program#CreateHostBuilder应该如下所示(默认)
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。