Я хотел бы узнать о поддержке расширения SSL/TLS Server Name Indication (SNI) в Android SDK.
Android SSL — поддержка SNI
Ответы (2)
Насколько мне известно, в Android SDK есть частичная поддержка. Текущая ситуация следующая:
- Поскольку в версии Gingerbread соединение TLS с
HttpsURLConnection
API поддерживает SNI. - Клиентская библиотека Apache HTTP, поставляемая с Android, не поддерживает SNI
- Веб-браузер Android также не поддерживает SNI (поскольку используется клиентский API Apache HTTP).
В системе отслеживания ошибок Android есть открытая заявка по этой проблеме.
Также можно протестировать поддержку SNI, подключившись к этому URL-адресу: https://sni.velox.ch/.
К счастью, HttpsURLConnection поддерживает SNI
с Android 2.3
. Один обходной путь, если вам нужно поддерживать Android 2.2 (and older)
, заключается в настройке альтернативного виртуального хоста на уникальном порту, чтобы было однозначно, какой сертификат сервера возвращать.
Перейдите по этой ссылке для получения дополнительной информации. Надеюсь, это поможет будущим пользователям.
Просто для информации
Новые версии SSL, в частности
TLSv.1.0 and later
, поддерживают указание имени сервера (SNI), что позволяет client, чтобы указать предполагаемое имя хоста для сервера, чтобы можно было вернуть правильный сертификат.