¿Cómo deshabilitar el acceso https a hosts virtuales específicos?


10

Bien, tengo un servidor Apache configurado con las siguientes directivas:

NameVirtualHost *:80

<VirtualHost *:80>  
ServerName example1.com  
ServerAlias www.example1.com  
DocumentRoot /var/www/html
</VirtualHost>

<VirtualHost *:80>
ServerName example2.com
ServerAlias *.example2.com
DocumentRoot /var/www/example2
</VirtualHost>

<VirtualHost example1.com:443>
DocumentRoot /var/www/html
ServerName example1.com:443
SSLEngine on
...
</VirtualHosts>

Por lo tanto, example1.com tiene soporte SSL y se puede acceder a través de http: // example1.com o https: // example1.com. Sin embargo, esto tiene el efecto secundario no deseado de mostrar https: // example1.com cuando visito https: // example2.com en mi navegador. Lo que quiero hacer es básicamente deshabilitar https: // example2.com de alguna manera o redirigirlo a http: // example2.com para que no reciba una advertencia y el sitio incorrecto cuando lo visite.

Respuestas:


7

No podrá evitar recibir una advertencia, a menos que el ejemplo1 y el ejemplo2 se encuentren en direcciones IP diferentes u obtenga un certificado SSL que cubra ambos nombres; no se puede generar una página de error o redireccionamiento hasta que se establezca la conexión SSL.

Dicho esto, algo en este sentido debería funcionar:

NameVirtualHost *:443
<VirtualHost *:443>
  ServerName example1.com
  SSLEngine on
  #...
</VirtualHost>
<VirtualHost *:443>
  ServerName example2.com
  SSLEngine on
  # same certificate config here as on example1, unless you're wanting to use TLS SNI
  # then, let's redirect the user to non-SSL
  Redirect permanent / http://example2.com/
</VirtualHost>

¡Gracias! Creo que me faltaba la directiva NameVirtualHost y Apache pensó que estaba tratando de hacer que dos hosts virtuales entraran en conflicto entre sí. Curiosamente, Chrome no está lanzando una advertencia sobre esta redirección ... Pero no estoy preocupado por eso, simplemente no quiero que mi sitio SSL aparezca bajo otros nombres de dominio.
nearengine

¿No es lo mismo que agregar certificados inválidos para recurrir a non-ssl? Supongo que puede agregar _fake directamente al nombre de los certificados en su directiva vhost.
m3nda

0

no creo que debas poner: 443 en ServerName example1.com:443

estos deben estar configurados correctamente

<VirtualHost example1.com:443> //change example1.com to ip address is a good habit
DocumentRoot /var/www/html
ServerName example1.com
SSLEngine on
...
</VirtualHosts>

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.