Я столкнулся с проблемой с Windows.Web.Http.HttpClient, когда у меня есть несколько соединений с использованием https с разными клиентскими сертификатами, с той же конечной точкой сервера.Windows.Web.Http.HttpClient проблема подключения к одному серверу с разными клиентскими сертификатами
У меня есть установка немного как:
Подключение A: подключение к https://www.myserver.com/path?querystring - с HttpBaseProtocolFilter используется для создания экземпляра HttpClient сконфигурированный для «клиента сертификат».
Все это работает нормально.
Теперь я создаю другое соединение, используя новый экземпляр HttpClient на том же сервере (другая строка запроса), и на этот раз фильтр настроен для «сертификата клиента B».
Это соединение, похоже, доходит до сервера, но похоже, что сервер получает неправильный сертификат клиента. У меня нет доступа к серверу или его журналам, но из ошибок, которые я получаю, я задаюсь вопросом, может ли он вместо этого получить «Client Certificate A».
Я отмечаю, что проблема уходит, если я положил '.' символ после «.com» части имени сервера во втором соединении. Это делает меня подозрительным, что есть некоторая кеширование где-то на основе имени сервера.
Это не работает на планшете Windows 8.1 Surface. Кажется, он работает нормально на моем ноутбуке разработки. Приложение, которое я создаю, представляет собой приложение для Windows Store, поэтому это также может быть частью проблемы.
Кто-нибудь знает, как кэшируются клиентские сертификаты, или соединения ssl/tls являются «локальными» для экземпляра HttpClient?
Может ли приложение Windows App Store (C#) очистить/отключить/отключить любую существующую сессию ssl/tls?
Любые указатели приветствуются.
PS: Приложение, которое я создаю, представляет собой приложение для мониторинга, которое может подключаться к серверу с использованием разных клиентских сертификатов для доступа к различным «учетным записям». Приложение предназначено для отображения агрегированного представления нескольких учетных записей, поэтому необходимо использовать несколько разных клиентских сертификатов для одной и той же конечной точки. Это все работает для версии приложения Android/iOS, но я не могу заставить работать с версией Windows. (Oh, и механизм доступа к серверу/счету не находится под моим контролем)
Thanks! Я думаю, что вторая ссылка, которую вы упомянули, очень хорошо описывает мою проблему, и я проверю ее как решение.Похоже, что только Windows 10 исправляет, поэтому версии версии 8.1 могут все еще иметь проблему. (BTW, проблема возникает, если я нахожу GET или POST-вызовы на сервере) – stope19