Android SSL – Soporte de SNI

Me gustaría saber sobre el soporte para la extensión de Indicación de Nombre de Servidor SSL / TLS (SNI) en el SDK de Android.

Por lo que sé, hay un soporte parcial en Android SDK. La situación actual es la siguiente:

  1. Desde el lanzamiento de Gingerbread, la conexión TLS con la API HttpsURLConnection admite SNI.
  2. La biblioteca del cliente HTTP Apache incluida con Android no es compatible con SNI
  3. El navegador web Android no es compatible con SNI (ya que usa la API del cliente Apache HTTP)

Hay un boleto abierto con respecto a este problema en el rastreador de errores de Android.

También es posible probar el soporte de SNI haciendo una conexión a esta URL: https://sni.velox.ch/

Afortunadamente, HttpsURLConnection admite SNI desde Android 2.3 . Una solución alternativa si necesita soportar Android 2.2 (and older) es configurar un host virtual alternativo en un puerto único para que no quede ambiguo qué certificado de servidor devolver.

Por favor, consulte este enlace para más información. Espero que esto ayude a los futuros usuarios.

Solo para información

Las versiones más nuevas de SSL, específicamente TLSv.1.0 and later , admiten la Indicación del nombre del servidor (SNI) , que permite al cliente SSL especificar el nombre de host deseado para el servidor para que se pueda devolver el certificado apropiado.