如何在.Net中强制使用TLS代替SSL
问题描述:
如何强制我的.Net应用程序使用TLS而不是SSL与某些Java Web Service建立连接? 代理Web服务生成为标准Web引用(不是WCF)。 Web服务网址为https:// ........。如何在.Net中强制使用TLS代替SSL
一些细节: 从我的.Net 4.0应用程序中,我调用JBoss上的Java Web Service & Redhat。 当发生错误异常消息为 ''现有连接被远程主机'强制关闭时,此Web服务在50%运行中正常工作。
当我看到网络通信使用Wireshark:
- 所有的错误建立连接使用SSL“你好客户端”和重置。
- 成功建立连接与使用TLSv1“你好客户”
所以迫使.NET来使用TLS能够解决这个奇怪的问题。
答
开始的地方是ServicePointManager.SecurityProtocol
。这允许设定SecurityProtocolType
值之一:Ssl3
或Tls
,后面进行了说明:
指定传输层安全(TLS)1.0安全协议。
TLS假定正在使用面向连接的协议(通常是TCP)。 TLS协议是在IETF RFC 2246中定义的。
经过很长时间,Java Web Service的提供商公司承认错误在他们身边,他们在防火墙级别上查杀连接。 这是他们的防DDOS防护功能失效的一部分。 – 2015-02-12 10:04:59