Pregunta

Me gustaría saber si hay alguna forma de averiguar si un navegador que realiza una solicitud HTTP admite SNI, aparte de verificar el agente del usuario y adivinar.

Consideraría las opciones del lado del servidor o del cliente.

Lo que me gustaría hacer es configurar los certificados SSL para múltiples dominios que apuntan a la misma aplicación PHP. Luego intentaría averiguar si el cliente que realiza la solicitud admite SNI y, de ser así, redirigirlo a la versión habilitada para SSL.

¿Fue útil?

Solución

Primero, conocemos los navegadores que actualmente admiten SNI:

Ópera 8.0; MSIE 7.0 (pero solo en Windows Vista o superior); Firefox 2.0 y otros navegadores que utilizan la plataforma Mozilla RV: 1.8.1; Safari 3.2.1 (la versión de Windows admite SNI en Vista o superior); Chrome (la versión de Windows admite SNI en Vista o superior también).

Entonces, una forma barata es determinar el navegador y si es uno de los anteriores, tiene SNI.

Si bien esta no es una mejor práctica (preferencia a la detección de características), parece que no hay forma de evitarlo, ya que la detección de SNI requiere un apretón de manos SSL. Por lo tanto, es demasiado tarde para hacer algo después del fracaso de su certificado SSL.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top