Redireccionar el tráfico SSL de Apache al subdominio con un certificado adecuado

2

Actualmente tengo un servidor que tiene un subdominio DynDNS (llamémoslo foo.dyn.com). También tengo un dominio apropiado con un CNAME que apunta a ese subdominio (llamémoslo bar.baz.com). foo.dyn.com tiene un certificado SSL autofirmado, mientras que bar.baz.com tiene un certificado SSL firmado por CA adecuado.

He configurado Apache para redirigir las solicitudes que no son SSL para cualquiera de los dominios https://bar.baz.com, lo que funciona bien. Mi problema es este: quiero https://foo.dyn.comque se redirija a cualquiera que intente acceder https://bar.baz.com. He probado 2 soluciones y ninguna de las dos está bien:

  1. Tener 1 VirtualHost, utilizando el certificado de CA. Esto obvio da una advertencia horrible sobre el dominio que usa el certificado incorrecto cuando alguien intenta acceder https://foo.dyn.com.
  2. Tenga 2 VirtualHosts, uno para foo.dyn.com con el certificado autofirmado y otro para bar.baz.com con el certificado correspondiente. Foo.dyn.com tiene una cláusula de redireccionamiento que redirige todo el tráfico a https://bar.baz.com, lo que funciona, excepto que todavía se muestra la advertencia de certificado autofirmado. Además, algunos clientes HTTP que no son del navegador web (como wget) obtienen el certificado de foo.dyn.com cuando apuntan a bar.baz.com

¿Hay alguna forma de evitar este problema?

marxjohnson
fuente

Respuestas:

1

Este es un problema en la pila de protocolos. Solo puede tener un certificado SSL por IP por puerto.

La razón es la siguiente: el sistema VirtualHost de apache y similar se basa en el encabezado de host HTTP . Sin embargo, este encabezado se envía después de establecer la conexión SSL (ya que todos los encabezados se envían después de establecer la conexión SSL, de lo contrario sería un poco inútil).

Por lo tanto, el único medio para que el servidor tenga que elegir un certificado se basa en la interfaz o IP en la que está entrando la conexión y el puerto.

Sin embargo, una solución para la advertencia sería agregar su segundo dominio como SubjectAltName al certificado.

Jonas Schäfer
fuente
0

Puede usar la Indicación del nombre del servidor, si sus clientes lo admiten. (Consulte esta respuesta en SO para ver los enlaces).

Bruno
fuente