2015-08-25 121 views
2

我有一个.NET应用程序,它使用后台智能传输服务将文件从客户端Windows 7 X64机器上传到Windows 2012 R2服务器。服务器被锁定以符合PCI 3.1的TLS 1.2,即协议SSL 2.0/3.0,TLS 1.0/1.1已在使用IISCrypto和TLS 1.2启用的reigstry中明确禁用。客户端上安装有服务器的可信根CA证书。后台智能传输和TLS 1.2

应用程序使用IBackgroundCopyManager和IBackgroundCopyJob COM接口来创建作业并将其添加到队列中。在比特客户端事件日志,我看到下面的警告,它开始执行后,转移(注意地址和文件名仅用于说明目的):

BITS stopped transferring the test.tmp transfer job that is associated with the https://server/folder/temp.tmp URL. The status code is 0x80072EFE 

的错误代码转换为:

ERROR_WINHTTP_CONNECTION_ERROR 与服务器的连接已重置或终止,或遇到不兼容的SSL协议。例如,WinHTTP版本5.1不支持SSL2,除非客户端特别启用它。

这很有道理,正如我在Wireshark中看到的那样,BITS请求只是在与服务器的握手协议中尝试使用TLS 1.0,并且已被禁用。

因此,我的问题是:是否可以启用Bits-Client使用TLS 1.2,如果是这样,它是如何完成的?

COM接口不提供任何方法来设置使用的协议,我也看不到任何在BITS服务的注册表设置。这绝对不是证书问题,因为只要在服务器上启用TLS 1.0,传输就会起作用。

回答