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

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

3 ответа

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

  1. Так как Gingerbread выпускает соединение TLS с HttpsURLConnection API поддерживает 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поддержка индикации имени сервера (SNI), которая позволяет клиенту SSL указывать предполагаемое имя хоста для сервера, чтобы можно было вернуть соответствующий сертификат.

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