如何使 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应用商店兼容,该怎么办?
Windows 8 运行时(WinRT/Windows 应用商店应用程序/Windows 10 通用应用程序)与 Silverlight 和 WPF 相比如何? [关闭]
如何在 Windows 上找到 Master-key 和 Session-ID 以使用 wireshark 解密 SSl/TLS 流量?