如何在 ASP.Net Core 2.0 中实现 TLS 1.2

How to implement TLS 1.2 in ASP.Net Core 2.0

平台详细信息:C#、.Net Core 2.0、WS 2016、反向代理中的 IIS 和 Kestrel

我的网络应用程序必须使用 HTTPS 和 TLS 1.2。 运行 已经可以使用 SSL,但这还不够。我在网上找到了有关 TLS 1.2 所需的注册表编辑的详细信息,作为我的 Web 服务器上的默认设置,并进行了这些更改。在这些注册表编辑之后,我的原始代码仍然有效。为了强制使用 TLS1.2,我在 buildwebhost 方法中将以下内容添加到我的 UseKestrel() 中。

options =>
{
    options.Listen(System.Net.IPAddress.Loopback, 443, listenOptions =>
    {
        listenOptions.UseHttps(new HttpsConnectionAdapterOptions { SslProtocols = SslProtocols.Tls12 });
    }
}))

现在网站抛出 502.5。 IIS 配置了原始证书,站点绑定到端口 443。有人告诉我证书本身在 SSL 和 TLS 之间是相同的,所以我不需要再获取一个。当我尝试使用本地主机调试代码时,我的 VS returns 出现错误提示

System.ArgumentException: 'The server certificate parameter is required.'

我找到了 "X509Certificate2" 对象的详细信息,以及一些不同的实现,其中作者使用加载方法从服务器上的某个位置流式传输该证书,但我不知道那是不是这里需要。

答案在问题的评论中。服务器提供的映像默认不包含 TLS 1.2,因此我们所做的注册表编辑实际上是必需的,但仅此而已