web-dev-qa-db-fra.com

Comment désactiver l'accès HTTPS à des hôtes virtuels spécifiques?

D'accord, j'ai donc un serveur Apache configuré avec les directives suivantes:

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>

SO Exemple1.com a une assistance SSL et peut être consulté via http: // exemple1.com ou https: // exemple1.com. Cependant, cela a l'effet secondaire inattendu de la montrage https: // exemple1.com lorsque je visite https: // exemple2.com dans mon navigateur. Ce que je veux faire, c'est fondamentalement désactiver https: // exemple2.com en quelque sorte ou réactivez-le à http: // exemple2.com Donc, je ne reçois pas un avertissement et le mauvais site quand je le visiterai.

10
nearengine

Vous ne serez pas en mesure d'éviter d'obtenir un avertissement, à moins que Exemple1 et exemple2 ne soient sur différentes adresses IP, ou si vous obtenez un certificat SSL couvrant les deux noms - une page d'erreur ou une redirection ne peut pas arriver qu'après l'établissement de la connexion SSL.

Cela étant dit, quelque chose qui doit fonctionner:

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>
7
Shane Madden

Vous devez avoir une indication de nom de serveur (SNI) pour y accomplir. Veuillez vous reporter au lien: http://wiki.apache.org/httpd/namebasedsslvhostswithsni Pour plus de détails.

0
Karthikeyan