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

10

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>

Ainsi, example1.com prend en charge SSL et est accessible via http: // example1.com ou https: // example1.com. Cependant, cela a pour effet secondaire involontaire d'afficher https: // example1.com lorsque je visite https: // example2.com dans mon navigateur. Ce que je veux faire, c'est essentiellement désactiver https: // example2.com en quelque sorte ou le rediriger vers http: // example2.com pour ne pas recevoir d'avertissement et le mauvais site lorsque je le visite.

moteur
la source

Réponses:

7

Vous ne pourrez pas éviter d'obtenir un avertissement, sauf si exemple1 et exemple2 se trouvent sur des adresses IP différentes, ou si vous obtenez un certificat SSL couvrant les deux noms - une page d'erreur ou une redirection ne peut se produire qu'après l'établissement de la connexion SSL.

Cela étant dit, quelque chose dans ce sens devrait 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>
Shane Madden
la source
Merci! Je pense que la directive NameVirtualHost me manquait et Apache pensait que j'essayais de faire entrer en conflit deux hôtes virtuels. Fait intéressant, Chrome ne lance pas d'avertissement sur cette redirection ... Mais je ne m'inquiète pas, je ne veux pas que mon site SSL apparaisse sous d'autres noms de domaine.
nearengine
N'est-ce pas la même chose que d'ajouter des certificats non valides pour revenir à des non-SSL? Je suppose que vous pouvez directement ajouter _fake au nom des certificats sur votre directive vhost.
m3nda
0

je ne pense pas que vous devriez mettre: 443 sur ServerName example1.com:443

ceux-ci devraient être configurés à droite

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

Pour ce faire, vous devez disposer de l'indication de nom de serveur (SNI). Veuillez consulter le lien: http://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI pour plus de détails.

Karthikeyan
la source
1
Voté parce que vous n'avez pas fourni de réponse ou d'exemple, seulement un lien (qui n'est pas garanti d'être là en permanence)
Chris Bloom