通过配置强制在 wcf 客户端 c# 中使用 tls 1.0
Force by config to use tls 1.0 in a wcf client c#
我们有一个 Web 应用程序,它有一个使用 WCF 实现的客户端。此客户端使用 SSL_LVL3 与外部服务进行握手。结果发现服务只是禁用了 SSL_LVL3,所以我们需要将其更改为 TLS 1.0。
有一种在 C# 中强制 TLS 安全的方法:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
但它会更改应用程序使用的所有服务的安全性,并且并非所有服务都接受 TLS。
我们想要更改 web.config 以强制 WCF 服务使用 TLS。有什么办法吗?
这是服务的绑定:
<binding name="XXXX" closeTimeout="00:01:00" openTimeout="00:01:00"
receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false"
bypassProxyOnLocal="false" NameComparisonMode= "StrongWildcard"
maxBufferPoolSize="524288" maxBufferSize="655360"
maxReceivedMessageSize="655360" textEncoding="utf-8"
transferMode="Buffered" useDefaultWebProxy="true"
messageEncoding="Text">
<security mode="Transport" />
</binding>
<customBinding >
<binding name="CusSoap">
<sslStreamSecurity requireClientCertificate="true" sslProtocols="Ssl3|Tls|Tls11|Tls12" />
</binding>
但它在 Visual Studio 2015(.Net Framework 4.5.2)
中可用
我们有一个 Web 应用程序,它有一个使用 WCF 实现的客户端。此客户端使用 SSL_LVL3 与外部服务进行握手。结果发现服务只是禁用了 SSL_LVL3,所以我们需要将其更改为 TLS 1.0。 有一种在 C# 中强制 TLS 安全的方法:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
但它会更改应用程序使用的所有服务的安全性,并且并非所有服务都接受 TLS。
我们想要更改 web.config 以强制 WCF 服务使用 TLS。有什么办法吗?
这是服务的绑定:
<binding name="XXXX" closeTimeout="00:01:00" openTimeout="00:01:00"
receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false"
bypassProxyOnLocal="false" NameComparisonMode= "StrongWildcard"
maxBufferPoolSize="524288" maxBufferSize="655360"
maxReceivedMessageSize="655360" textEncoding="utf-8"
transferMode="Buffered" useDefaultWebProxy="true"
messageEncoding="Text">
<security mode="Transport" />
</binding>
<customBinding >
<binding name="CusSoap">
<sslStreamSecurity requireClientCertificate="true" sslProtocols="Ssl3|Tls|Tls11|Tls12" />
</binding>
但它在 Visual Studio 2015(.Net Framework 4.5.2)
中可用