我正在编写一个客户端应用程序,需要通过 BITS 将文件发送到我的服务器。我已基本完成所有工作,但我无法让 BITS 连接安全地使用 HTTPS 运行。
现在我只是通过 HTTP 使用基本身份验证,因此登录信息以明文形式发送——这不是最佳选择 :-) 我希望能够使用 HTTPS,但不确定如何进行。根据此 Google 群组主题,BITS“不支持使用证书进行身份验证”(尽管该评论已有数年历史)。这是否意味着 SSL 已过时?我还能通过 HTTPS 保护 BITS 的连接吗?
我的服务器在 Windows Server 2003 上运行 IIS 6.0。如能得到任何帮助我将非常感谢!
(我最初在 Stack Overflow 上发布了这篇文章,但我想我也想在这里尝试一下——似乎属于这两个领域)
答案1
从微软
使用证书进行客户端/服务器身份验证
在安全的客户端/服务器通信中,客户端和服务器可以使用数字证书相互验证身份。BITS 自动支持基于证书的服务器验证,以实现安全的 HTTP 传输。要为 BITS 提供相互验证身份所需的客户端证书,请调用
IBackgroundCopyJobHttpOptions::SetClientCertificateByID
或者
IBackgroundCopyJobHttpOptions::SetClientCertificateByName
方法。
当网站接受但不需要 SSL 客户端证书,并且 BITS 作业未指定客户端证书时,作业将失败,并出现 ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED (0x80072f0c)。