【发布时间】:2016-11-18 05:06:24
【问题描述】:
当我使用具有不同客户端证书的 https 与同一服务器端点建立多个连接时,我遇到了 Windows.Web.Http.HttpClient 的问题。
我的设置有点像:
连接 A:连接到 https://www.myserver.com/path?querystring - 使用用于创建为“客户端证书 A”配置的 HttpClient 实例的 HttpBaseProtocolFilter。
这一切都很好。
现在我创建另一个连接,使用新的 HttpClient 实例到同一服务器(不同的查询字符串),这次过滤器配置为“客户端证书 B”。
此连接似乎可以连接到服务器,但服务器似乎获取了错误的客户端证书。我无法访问服务器或其日志,但从我得到的错误中我想知道它是否正在获取“客户端证书 A”。
我注意到,如果我输入“.”,问题就会消失。第二个连接中服务器名称的“.com”部分之后的字符。这让我怀疑基于服务器名称的某处有一些缓存。
这在 Windows 8.1 Surface 平板电脑上失败。它似乎在我的开发笔记本电脑上工作正常。我正在构建的应用是 Windows 应用商店应用,因此这也可能是问题的一部分。
有没有人知道如何缓存客户端证书,或者 ssl/tls 连接是否是 HttpClient 实例的“本地”连接?
Windows App Store 应用 (C#) 能否清除/禁用/断开任何现有的 ssl/tls 会话?
欢迎指点。
PS:我正在构建的应用程序是一个“监控”应用程序,它可以使用不同的客户端证书连接到服务器以访问不同的“帐户”。该应用程序旨在显示多个帐户的聚合视图,因此需要针对同一端点使用许多不同的客户端证书。这一切都适用于应用程序的 Android/iOS 版本,但我无法让 Windows 版本正常工作..(哦,服务器/帐户访问机制无论如何都不受我的控制)
【问题讨论】:
标签: c# ssl windows-store-apps win-universal-app