平台详细信息:C#、. Net Core 2.0,WS 2016,IIS和Kestrel(反向代理)
我的Web应用程序必须使用HTTPS和TLS 1.2。使用SSL已经可以正常运行,但这还不够。我在Web服务器上在线找到了有关TLS 1.2默认所需的注册表编辑的详细信息,并进行了更改。这些注册表编辑后,我的原始代码仍然有效。为了强制使用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返回一条错误消息
System.ArgumentException:“服务器证书参数是必需的。”
我发现了“ X509Certificate2”对象的详细信息,以及一些不同的实现,在这些实现中,作者正在使用加载方法从服务器上的某个位置流式传输该证书,但是我不知道这里是否需要这样做。
答案 0 :(得分:0)
答案在问题注释中。服务器提供的映像默认情况下不包含TLS 1.2,因此我们实际上需要进行注册表编辑,但仅此而已