通过HTTPS的WCF服务(自托管) - 获取协商的SSL / TLS协议版本

时间:2015-03-05 10:26:47

标签: c# .net wcf ssl

出于安全原因,我们希望在操作系统级别(在followign SChannel注册表中)禁用我们服务器中的TLS 1.0支持:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols

但是因为SQL Server service won't start with TLS 1.0 disabled,我们不得不在操作系统级别启用TLS 1.0。

我们现在要做的是在应用程序级别而不是在操作系统级别强制使用TLS 1.2。

我们的应用程序是Client-Server,在.NET 4.5上运行。 在客户端上,在调用WCF服务之前,我们设置:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

确保客户端使用TLS1.2协议发送ClientHello消息。

但是在服务器上,这是自托管的WCF服务,我们看不到如何强制使用TLS1.2。服务器端的SSL / TSL协商基于SChannel注册表,因此设置ServicePointManager.SecurityProtocol不会产生任何影响。

我们想检查我们的服务器代码中的传入WCF调用,并检查用于该调用的TLS协议,如果它小于TLS1.2,则关闭连接。

有没有办法让传入的WCF调用SSL / TLS协议版本?类似HttpContext.WebSocketNegotiatedProtocol的内容?

0 个答案:

没有答案