WCF:启用TLS 1.2和禁用SSL

时间:2019-01-04 16:12:19

标签: wcf tls1.2

我们正在升级我们的产品以使用TLS 1.2版本。为此,我们将所有项目从.net 4.6.2升级到了.net 4.7.2版本并进行了构建。

打开频道时,我看到了一个与WCF服务有关的问题

(proxy as ICommunicationObject).Open();

我的代码中已经有这个了

// https://docs.microsoft.com/en-us/dotnet/framework/whats-new/#wcf47

AppContext.SetSwitch("Switch.System.ServiceModel.DisableUsingServicePointManagerSecurityProtocols",
        false);

    AppContext.SetSwitch("Switch.System.Net.DontEnableSchUseStrongCrypto",
        false);

System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;

例外:

  

由于身份验证失败,因此无法满足对安全令牌的请求。

     

呼叫者未通过服务验证。

我使用证书(客户端和服务器)通过

进行身份验证
Security.Message.ClientCredentialType = MessageCredentialType.Certificate;

1 个答案:

答案 0 :(得分:0)

解决以下问题:

客户端:

b.Security.Message.EstablishSecurityContext = false;
b.Security.Message.NegotiateServiceCredential = false;

服务器端:

<message clientCredentialType="Certificate" establishSecurityContext="false" negotiateServiceCredential="false"/>

中所述

https://blogs.msdn.microsoft.com/dsnotes/2017/04/13/wcf-message-security-limitation-with-tls-1-2-protocol/