如何使 Windows 商店应用程序与 TLS 1.2 一起使用?

Posted

技术标签:

【中文标题】如何使 Windows 商店应用程序与 TLS 1.2 一起使用?【英文标题】:How to make windows store app work with TLS 1.2? 【发布时间】:2015-09-01 05:57:21 【问题描述】:

有一个通过 WCF 连接到 Web 服务的 Windows 商店应用程序 8.1。最近在服务器上设置了 TLS 1.2,因此应用程序停止工作。这是一个例外

发出 HTTP 请求时出错 https://services.companyname.com 这可能是由于 服务器证书未正确配置的事实 HTTPS 情况下的 HTTP.SYS。这也可能是由于不匹配造成的 客户端和服务器之间的安全绑定。

即使是一个简单的网络请求

WebRequest request = WebRequest.Create(SERVER_URL_PROD);
WebResponse response = await request.GetResponseAsync();

返回以下内容

“System.Net.WebException”类型的异常发生在 mscorlib.dll 但未在用户代码中处理

附加信息:底层连接已关闭:一个 发送时发生意外错误。

那么如何让 Windows 商店应用与 TLS 1.2 一起工作?

更新

上面的代码可以在控制台应用程序(.NET 4.5)中运行

 ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

ServicePointManager 不适用于 Windows 应用商店应用

更新 2

此外,该代码适用于 Windows Phone 8.1,其中ServicePointManager可用。

【问题讨论】:

好问题。我也想将 tls 1.2 添加到 windows 手机/平板电脑应用程序中。 您可以使用 ssllabs.com/ssltest/analyze.html 测试您的服务器,以验证 supportet CipherSuits 是否可用。 【参考方案1】:

我已经处理了 Web 应用程序的 TLS 1.2 问题,正如 OP 所提到的,System.Net.ServicePointManager 的简单解决方案在 Windows 应用商店应用程序中不起作用。

解决方法是使用Windows.Web.Http 而不是System.Net.Http,如MSDN forum 帖子中所述。

【讨论】:

以上是关于如何使 Windows 商店应用程序与 TLS 1.2 一起使用?的主要内容,如果未能解决你的问题,请参考以下文章

如果我无法使我的应用程序与Windows应用商店兼容,该怎么办?

如何使 OpenSSL C 服务器仅支持 TLS 1.3?

Windows 8 运行时(WinRT/Windows 应用商店应用程序/Windows 10 通用应用程序)与 Silverlight 和 WPF 相比如何? [关闭]

如何从 Windows 商店应用程序启动桌面应用程序?

如何在 Windows 上找到 Master-key 和 Session-ID 以使用 wireshark 解密 SSl/TLS 流量?

如何在 Windows 上对 PHPMailer/OpenSSL TLS SMTP 进行故障排除?