2012-06-07 12 views
7

ProblemaRedirigir a 'www' antes del requisito de SSL

tengo actualmente el problema donde https://domain.com no redirige a https://www.domain.com y muestra un certificado SSL no es de confianza.

Esto está relacionado con que es una solución rubí sobre raíles redirect to 'www' before force_ssl

Pregunta

¿Hay una manera de redireccionar el dominio www antes de las patadas requisito de SSL en?

Estoy usando PHP.

+0

posible duplicado de [Redirigir https a no-www y http a www] (http://stackoverflow.com/questions/10725357/redirect-https-to-non-www-and-http-to-www) – Bruno

+0

@Bruno Miró muchos casos pero ninguno define la respuesta dada por deceze – williamcarswell

+0

No estoy seguro de lo que quiere decir.Pude más o menos copiar/pegar la respuesta que di a la otra pregunta para responder la tuya. (Más o menos lo mismo que dijo deceze, lo único que no dice es que puedes lograr lo que quieres con un certificado válido para ambos.) Hay una serie de preguntas al respecto. Aquí hay otro en SF: http://serverfault.com/a/360985/47187 – Bruno

Respuesta

18

HTTPS es HTTP sobre TLS/SSL (ver RFC 2818), que primero establece la conexión SSL/TLS antes de enviar cualquier tráfico HTTP. Cualquier redirección (a través de mod_rewrite, código PHP personalizado u otro) siempre se aplicará después de que se establezca la conexión SSL/TLS.

No hacerlo sería en realidad un problema de seguridad, ya que un atacante podría reescribir y redirigir al cliente antes de que se haya verificado el certificado.

Si desea cambiarlo desde la https://domain.com a https://www.domain.com, el certificado obtenido para https://domain.com debe ser válido para domain.com (y luego, el certificado obtenido para https://www.domain.com debe ser válido para www.domain.com).

(se pueden utilizar dos certificados diferentes con el nombre del servidor Indicación de si los dos anfitriones se sirven en la misma dirección IP, pero esto es más bien complicado.)

Lo más fácil sería obtener un certificado que es válido para ambos domain.com y www.domain.com. Esto se puede hacer usando un solo certificado con múltiples entradas de Nombre alternativo del sujeto. La mayoría de las CA deberían poder emitir dichos certificados. Algunos lo hacen sin costo adicional.

1

Se emite una respuesta de redireccionamiento a través del protocolo HTTP. Para recibir dicha respuesta/comando, el cliente primero necesita establecer una conexión HTTP. Si el cliente intenta establecer una conexión HTTP_S_, entonces la negociación SSL debe completarse primero.

En otras palabras, no. La URL https://domain.com no es válida para su aplicación. Ningún cliente debería saber sobre esta dirección en particular y, por lo tanto, no debería intentar acceder a ella. Debes evitar dar esta URL en cualquier lugar para que los clientes no intenten acceder a ella. De hecho, parece que no desea ejecutar un servidor HTTPS para ese dominio, por lo que debería desactivarlo, para que los clientes no puedan conectarse al domain.com a través de HTTPS.

0

La mejor solución que he encontrado es simplemente para comprar un nuevo certificado SSL con nombres alternativos de sujeto para que pueda tener www y sin www en el mismo certificado y ambos son válidos. De esta forma, puede redirigir de manera segura https://www a https: // de forma transparente y sin ningún error de certificado.

Cuestiones relacionadas