TLS с расширением индикации имени сервера (RFC 3546) в Android

Я создаю приложение для Android, которое должно работать с https. У меня нет проблем с установлением https-соединения с адресом https, который не использует TLS с расширением индикации имени сервера. Но мне нужно сделать подключение к адресу https, который использует TLS с расширением SNI.

То, что я сделал для адреса https, который использует TLS без нашего имени хоста, было:

HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("https://exampleurl.com/api");

    try {

        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
        nameValuePairs.add(new BasicNameValuePair("username", email));
        nameValuePairs.add(new BasicNameValuePair("ssh_public_key", publickey));
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

        HttpResponse response = httpclient.execute(httppost);

        Log.d(TAG, response.toString());

        return response.toString();

    } catch (Exception e) {
        Log.d(TAG, e.toString());
    } 

Как добавить расширение индикации имени сервера в TLS в Android. После исследования я нашел один пост на stackru, но не могу заставить его работать с этой информацией.

Но немного в пути "Насколько я знаю, в Android SDK есть частичная поддержка. Текущая ситуация следующая:

Так как соединение TLS Gingerbread с API HttpsURLConnection поддерживает SNI. Клиентская библиотека Apache HTTP, поставляемая с Android, не поддерживает SNI. Веб-браузер Android также не поддерживает SNI (поскольку используется API-клиент Apache HTTP)".

"Спасибо за помощь. Я попробовал ссылку sni.velox.ch, используя классы SSLCONTEXT(TLS) и SSLENGINE, доступные в Android SDK. Я получаю рукопожатие".

Android SSL - поддержка SNI

Этот пост дает ответ, что это будет работать в Android, но я не могу понять, как это сделать с помощью HttpsURLConnection, SSLCONTEXT(TLS) и SSLENGINE.

Может ли какой-либо орган предоставить пример кода, как установить расширение индикации имени сервера в TLS?

0 ответов

Другие вопросы по тегам