【发布时间】:2015-11-18 22:28:18
【问题描述】:
我有一个 .NET 应用程序,它使用后台智能传输服务将文件从客户端 Windows 7 X64 机器上传到 Windows 2012 R2 服务器。服务器为 TLS 1.2 被锁定以符合 PCI 3.1,即协议 SSL 2.0/3.0、TLS 1.0/1.1 已在注册表中使用 IISCrypto 和启用的 TLS 1.2 显式禁用。客户端上安装了服务器的受信任根 CA 证书。
应用程序使用 IBackgroundCopyManager 和 IBackgroundCopyJob COM 接口来创建作业并将其添加到队列中。在 Bits-Client 事件日志中,我在开始传输后看到以下警告(请注意,地址和文件名仅用于说明目的):
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 12030 与服务器的连接已被重置或终止,或者遇到了不兼容的 SSL 协议。例如,WinHTTP 5.1 版不支持 SSL2,除非客户端专门启用它。
这是有道理的,正如我在 Wireshark 中看到的那样,BITS 请求仅尝试在与服务器的握手协议中使用 TLS 1.0,而这已被禁用。
因此,我的问题是:是否可以通过 Bits-Client 启用 TLS 1.2 的使用,如果可以,它是如何完成的?
COM 接口没有提供任何方法来设置所使用的协议,而且我在 BITS 服务的注册表设置中也看不到任何内容。这绝对不是证书问题,因为只要在服务器上启用 TLS 1.0,传输就会工作。
【问题讨论】:
标签: ssl