C#:使用客户端/服务器证书通过https / SSL3发送XML

时间:2015-07-30 00:42:53

标签: c# xml ssl https

我需要开发一个能够将XML文档发布到SAP Bussiness Connector 4.6的C#客户端。

客户: .NET直到4.6,VS 2013可用,SO Win 8.1 Pro 64位。

服务器: Windows 2000,带有SAP Business Connector 4.6(它实际上与WebMethods 4.6相同),配置了https和客户端证书作为身份验证方法。服务器的证书与本地开发中使用的URL不匹配。

我尝试了几种.NET方法和客户端。我实际上尝试使用httpClient连接BC,但没有成功。

实际代码与此非常相似:

Read (u, "(a)", iostat=st)  s

当我启动它时,会抛出异常,发出此错误:

  

System.Net.Http.HttpRequestException:发送请求时发生错误。 ---> System.Net.WebException:请求已中止:无法创建SSL / TLS安全通道。

根本没有服务器响应我可以探索或调试。我认为这是握手SSL协议的问题。我必须坚持:服务器没有响应文本,根本没有402或404消息错误:没有收到任何内容。

Firefox在这方面表示没有联系。 IE,激活了TSL 1.0,1.2和1.3,表示它无法连接;激活SSL 3.0并重新打开页面说服务器证书存在问题(是的,因为我正在从本地网络访问,其中证书声明类似于" this.server.com")。

Fiddler4并没有对我说太多(而自动证书似乎让人感到困惑),SoapUI在这里看起来并不是很有用(没有办法设置证书和SSL握手)。 找到了一个工具(TestSSLServer,链接:http://www.bolet.org/TestSSLServer/),它给了我这个信息:

  

支持的版本:SSLv3 TLSv1.0 Deflate压缩:否支持   密码套件(订单不重要):     在SSLv3        RSA_EXPORT_WITH_RC4_40_MD5        RSA_WITH_RC4_128_MD5        RSA_WITH_RC4_128_SHA        RSA_EXPORT_WITH_RC2_CBC_40_MD5        RSA_EXPORT_WITH_DES40_CBC_SHA        RSA_WITH_DES_CBC_SHA        RSA_WITH_3DES_EDE_CBC_SHA     (TLSv1.0:同上)   ----------------------服务器证书:
  188659f61762af0de690bf5cb76a8554e7ff7f23:CN = my.server.com,   OU =域控制已验证   ----------------------最小加密强度:弱加密(40位)可实现的加密强度:强加密   (96位或更多)BEAST状态:易受攻击的CRIME状态:受保护

所以我想我必须强制SSL3握手(我认为这在我的代码中没问题),验证服务器证书(也是)...也许我必须对客户端证书做些什么。 我必须为我的客户端计算机生成一个并加载它吗?如何使用TestSSLServer列表中的一个标题生成一个?哪个文件应该安装在什么电脑上?

我可以听到其他http客户端(ServerXMLHTTP等)或能够通过xml测试xml帖子的工具。关于如何继续进行的任何想法?

0 个答案:

没有答案