HttpClient с SSLC кешированием и хранилищем ключей на Android - PullRequest
1 голос
/ 02 ноября 2011

Я хочу подключиться к серверу https с использованием аутентификации клиента SSL и кэширования SSL. Насколько я могу судить, вы можете иметь только одно или другое, и я не вижу причины, по которой это могло бы быть.

В настоящее время я использую DefaultHttpClient, который принимает ClientConnectionManager, который я настроил с помощью SSLSocketFactory, загруженной с хранилищем ключей pkcs12, чтобы я мог выполнить аутентификацию клиента SSL.

Я также обнаружил SSLCertificateSocketFactory.getHttpSocketFactory (), которому можно передать SSLSessionCache.

Затем я регистрирую фабрику сокетов

SchemeRegistry registry = new SchemeRegistry();
registry.register(new Scheme("https",socketFactory , port));

и использовать реестр для создания ClientConnectionManager, а затем HttpClient

ThreadSafeClientConnManager ccm = new ThreadSafeClientConnManager(httpParameters, registry);
httpClient = new DefaultHttpClient(ccm, httpParameters);

но я не знаю, как дать SSLSocketFactory SSLSessionCache или SSLCertificateSocketFactory хранилище ключей

Наконец, я рассмотрел использование AndroidHttpClient, который вы можете передать Контекст, который он будет использовать для SSLCaching, но я не могу найти способ получить AndroidHttpClient для использования моего ClientConnectionManager.

Я что-то упустил или это действительно невозможно?

Спасибо

1 Ответ

1 голос
/ 12 августа 2012

HttpClient имеет встроенное кэширование сеанса SSL, SSLSessionCache для HttpsURLConnection, насколько я понимаю.

Это не очень хорошо задокументировано, правда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...