有什么方法可以将ASP.NET Core 2.0 HTTPS限制为TLS 1.2吗?

时间:2017-10-19 14:31:02

标签: c# asp.net asp.net-core .net-core

我有一个运行良好的ASP.NET Core 2.0 REST服务器,但我需要限制对TLS1.2的访问 - 我该怎么做?似乎无法找到任何文档。 服务器正在Kestrel上运行。 谢谢!

3 个答案:

答案 0 :(得分:10)

有一个UseHttps重载,允许您提供HttpsConnectionAdapterOptions实例来配置它。以下是您的案例中可能出现的示例:

listenOptions.UseHttps(new HttpsConnectionAdapterOptions
{
    ...
    SslProtocols = SslProtocols.Tls12
});

供参考,SslProtocols defaultsSslProtocols.Tls12 | SslProtocols.Tls11

答案 1 :(得分:3)

.net core 2.1 Kestrel配置:

.UseKestrel(c =>
            {
                c.ConfigureHttpsDefaults(opt =>
                {
                    opt.SslProtocols = SslProtocols.Tls12;
                });
            })

答案 2 :(得分:0)

在.Net Core 3.1中,您可以通过在Program.cs的ConfigureWebHostDefaults内部添加以下代码来强制TLS 1.2

   webBuilder.UseKestrel(opt =>
                    {
                        opt.AddServerHeader = false;
                        opt.ConfigureHttpsDefaults(s =>
                        {
                            s.SslProtocols = SslProtocols.Tls12;
                        });
                    });

下面的图像可显示完整的代码:

enter image description here