我需要你的帮助!
当我使用wcf客户端通过https请求Web服务时,它得到了例外:
An error occurred while making the HTTP request to https://***. This could be due to the fact that the server certificate is not configured properly with HTTP.SYS in the HTTPS case. This could also be caused by a mismatch of the security binding between the client and the server.
我的wcf客户端绑定设置是
<binding name="BasicHttpBinding_MY_SSL" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384"/>
<security mode="Transport">
<transport clientCredentialType="None" proxyCredentialType="None" realm=""/>
</security>
</binding>
在wirshark它得到了流量:
你可以看到Alter,它是:
我的wcf客户端在Windows Server 2003上运行。我们找到了此异常的根本原因:在我们的wcf客户端上,它使用SSL3启动与远程服务器的SSL握手,但远程服务器的F5防火墙拒绝连接使用SSL3,只允许与Tls(SSL3.1)连接。
但我的问题是为什么WCF客户端使用SSL3来启动SSL握手而不是Tls,因为我知道Windows Server 2003支持Tls(SSL3.1)并且它始终使用它支持的最高协议(Tls)来启动SSL握手,但为什么在我的情况下不会发生这种情况?