【发布时间】:2017-08-17 10:58:29
【问题描述】:
我有一个简单的问题,但在任何地方都找不到答案。 我有一个 WCF 服务器应用程序。我希望它只使用 TLS1.2。
我无法控制客户端,也无法在机器上编辑 SCHANNEL 设置。
我已经尝试了以下似乎仅适用于传出连接(客户端)的方法
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
除了每个代码的 TLS 1.2 服务器端之外,还有什么方法可以限制任何东西?
编辑: 我正在使用 net.tcp 绑定并创建这样的绑定:
private static Binding CreateNetTcpBinding()
{
return new NetTcpBinding
{
ReceiveTimeout = TimeSpan.FromMinutes(10),
ReliableSession =
{
Enabled = true,
InactivityTimeout = TimeSpan.FromMinutes(1)
},
Security =
{
Mode = SecurityMode.Transport,
Transport =
{
ClientCredentialType = TcpClientCredentialType.Windows,
ProtectionLevel = ProtectionLevel.EncryptAndSign,
SslProtocols = SslProtocols.Tls12
},
Message =
{
AlgorithmSuite = SecurityAlgorithmSuite.xxx <-- not here on purpose,
ClientCredentialType = MessageCredentialType.Windows
}
}
};
}
如果有人能告诉我在哪里检查当前连接的 TLS 版本(某些上下文),那就足够了!
提前谢谢你!
【问题讨论】:
-
好久没有发现一个很好的 WCF 问题了!
-
您的问题似乎已在 .NET Framework 4.7 中得到解决 - 能够将默认邮件安全设置配置为 TLS 1.1 或 TLS 1.2