Поддержка Android SSL – SNI

Я хотел бы узнать о поддержке расширения SSL / TLS Server Name Indicication (SNI) в Android SDK.

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

  1. Поскольку TLS-соединение Gingerbread с API HttpsURLConnection поддерживает SNI.
  2. Клиентская библиотека Apache HTTP, поставляемая с Android, не поддерживает SNI
  3. Веб-браузер Android не поддерживает SNI ни с тех пор (с использованием API-интерфейса Apache HTTP)

Существует открытый билет по этой проблеме в Android-трекер ошибок.

Также можно протестировать поддержку SNI, установив соединение с этим URL-адресом: https://sni.velox.ch/

Вы также можете использовать SNI с библиотекой HttpClient: http://blog.dev001.net/post/67082904181/android-using-sni-with-apache-httpclient-library

К счастью, HttpsURLConnection поддерживает SNI с Android 2.3 . Один обходной путь, если вам нужно поддерживать Android 2.2 (and older) – это настроить альтернативный виртуальный хост на уникальном порту, чтобы однозначно вернуть серверный сертификат.

Для получения дополнительной информации см. Эту ссылку . Надеюсь, это поможет будущим пользователям.

Только для информации

Более поздние версии SSL, в частности TLSv.1.0 and later , поддерживают TLSv.1.0 and later имени сервера (SNI) , которая позволяет клиенту SSL указывать предполагаемое имя хоста на сервере, чтобы можно было вернуть правильный сертификат.

  • Как загрузить файл PKCS # 12 в OpenSSL программно?
  • HTTPS GET (SSL) с Android и самозаверяющим сертификатом сервера
  • Использование JavaMail с TLS
  • Что происходит на проводе при настройке соединения TLS / LDAP или TLS / HTTP?
  • Есть ли .NET-версия TLS 1.2?
  • jQuery ajax и SSL?
  • Trust Anchor не найден для подключения SSL для Android
  • Сколько информации может видеть мой интернет-провайдер?
  • С HTTPS, являются ли URL и заголовки запросов защищенными как тело запроса?
  • Как перечислить / экспортировать закрытые ключи из хранилища ключей?
  • Заставить браузер загружать «https» версию веб-сайта, а не «http»?
  • Давайте будем гением компьютера.