2010-06-14 7 views
5

Tenemos un sitio www.name1.domain.com para el cual hemos creado e implementado con éxito un certificado SSL. Luego agregamos otro sitio, www.name2.domain.com, y estamos viendo un comportamiento extraño en IE7 e IE8 (¡sorpresa!).Falta de coincidencia del certificado SSL en IE 7+, OK en Firefox 3.6+

Básicamente, IE7,8 informa una falta de coincidencia de nombre de host cuando vamos a https://www.name2.domain.com/. Cuando agrego y veo este certificado en IE para este dominio, el nombre de host es incorrecto, pero pertenece al nombre de host anterior, es decir, www.name1.domain.com.

Firefox no tiene este problema, y ​​recoge el nombre de host correcto www.name2.domain.com para el segundo sitio sin problema.

Cualquier idea por qué IE es misbehavin (aparte de los descarados (-:)

Gracias

KM

+0

No entiendo lo que dices. ¿Qué, exactamente, está en el certificado? ¿De cuántos certificados estamos hablando? ¿Uno? ¿Dos? –

+0

Hay dos hosts - www.name1.domain.com y www.name2.domain.com - con un certificado SSL configurado cada uno en Apache. Cuando voy a https://www.name1.domain.com y miro el certificado, el nombre común para el servidor es www.name1.domain.com en IE o Firefox. Hasta aquí todo bien. Cuando voy a https://www.name2.domain.com en IE, IE dice que hay un "Hay un problema con el certificado de seguridad de este sitio web". Procuro ver el sitio, pero IE muestra un "Error de certificado" al ver que el certificado me muestra que fue emitido a www.nombre1.domain.com, cuando debería ser www.nombre2.dominio.com. HTH y gracias por su tiempo! –

Respuesta

7

Su problema es que Internet Explorer en Windows XP (y probablemente otro software también) no es capaz de SNI.

Acabo de encontrarme con el mismo problema: básicamente Firefox y Chrome están bien y obtienen el certificado correcto, pero Internet Explorer no.Luego he mirado hacia arriba un poco y vi this en Wikipedia, entre otras cosas:

navegadores con soporte para TLS indicación de nombre del servidor [7] Internet Explorer 7 o posterior, en Windows Vista o superior. No funciona en Windows XP , incluso Internet Explorer 8.

Así, el Apache/openSSL combo es capaz SNI y puede hacer esto, pero Windows XP no lo es.

Mi solución es que estoy poniendo primero el subdominio primario en la configuración VirtualHost, y el secundario menos. Al menos hay menos explicaciones a los clientes sobre por qué aparece esto. No sé si te funcionaría.

+2

P.S. Solo quiero gritarles a mis usuarios y decirles que empiecen a usar Chrome, ¡por los cielos! – Zlatko

2

Firefox admite la ejecución de SSL a través del mismo puerto, 443 (usando la misma?! IP) para dos hosts virtuales (en Apache), pero IE7 no.

http://www.eggheadcafe.com/software/aspnet/36069240/sni-support.aspx

====

http://httpd.apache.org/docs/2.0/ssl/ssl_faq.html#vhosts2

Por qué no es posible usar hosting virtual basado en nombres para identificar diferentes máquinas virtuales con SSL? El alojamiento virtual basado en nombre es un método muy popular para identificar diferentes hosts virtuales. Le permite usar la misma dirección IP y el mismo número de puerto para muchos sitios diferentes. Cuando las personas pasan a SSL, parece natural suponer que se puede usar el mismo método para tener muchos hosts virtuales SSL diferentes en el mismo servidor.

Resulta más bien sorprendente saber que es imposible.

La razón es que el protocolo SSL es una capa separada que encapsula el protocolo HTTP. Entonces, la sesión SSL es una transacción separada, que tiene lugar antes de que la sesión HTTP haya comenzado. El servidor recibe una solicitud SSL en la dirección IP X y el puerto Y (generalmente 443). Dado que la solicitud SSL no contiene ningún campo Host: el servidor no tiene forma de decidir qué servidor virtual SSL usar. Por lo general, solo usará el primero que encuentre, que coincida con el puerto y la dirección IP especificada.

Puede, por supuesto, usar Hosting Virtual Basado en Nombre para identificar muchos hosts virtuales no SSL (todos en el puerto 80, por ejemplo) y luego tener un solo host virtual SSL (en el puerto 443). Pero si hace esto, debe asegurarse de poner el número de puerto no SSL en la directiva NameVirtualHost, p.

NameVirtualHost 192.168.1.1:80 Otras soluciones de solución incluyen:

uso de direcciones IP separadas para diferentes hosts SSL. Usar diferentes números de puerto para diferentes hosts SSL.

+0

Paul, ¿puedes decirme por qué Chrome y Firefox obtienen el certificado correcto e Internet Explorer no? Con múltiples hosts SSL? – Zlatko

Cuestiones relacionadas