2017-10-09 6 views
0

J'ai un serveur exécutant Apache 2 qui a 6 hôtes virtuels. Tous les hôtes virtuels fonctionnent sur SSL. Cependant si vous faites une demande à l'IP de mon serveur (par exemple: https://11.22.33.444) puisqu'il n'y a aucun certificat pour mon adresse IP vous êtes redirigé vers le dernier hôte virtuel par ordre alphabétique et n'importe quelle application est liée à cet hôte virtuel chargera https://11.22.33.444.Comment refuser les demandes https à mes serveurs adresse IP publique

Ma question est de savoir comment puis-je soit

  1. rediriger toute charge de trafic sur l'adresse IP publique de mon serveur à une page d'erreur OU
  2. Deny toute charge de trafic sur l'adresse IP publique de mon serveur et l'arrêt de la connexion

Répondre

1

Apache priorise les VirtualHosts en termes de commande. En plaçant un serveur très basique en haut, il redirigera tout le trafic (qui ne satisfait pas les autres hôtes virtuels) vers cette page Web.

#default server b/c first 

<VirtualHost *:80> 
     Redirect 302/https://www.mainsite.com/error_page 
</VirtualHost> 

#main server 

<VirtualHost *:443> 
     ServerName www.mainsite.com 
     DocumentRoot ... 
     SSLEngine on 
     SSLCertificateFile.....etc. 
</VirtualHost> 

<VirtualHost *:443> 
     ServerName www.secondsite.com 
     DocumentRoot ... 
     SSLEngine on 
     SSLCertificateFile.....etc. 
</VirtualHost> 

#force https servers 

<VirtualHost *:80> 
     ServerName www.mainsite.com 
     Redirect 301/https://www.mainsite.com/ 
</VirtualHost> 

<VirtualHost *:80> 
     ServerName portfolio.secondsite.com 
     Redirect 301/https://www.secondsite.com/ 
</VirtualHost> 
+0

Cette technique est connue sous le nom par défaut/catch-all vhost (https://serverfault.com/questions/82306/apache-default-catch-all-virtual-host). –

+0

@arjunpat Merci pour votre réponse rapide. Mon problème avec votre réponse est qu'il ne redirige pas le trafic https sur l'adresse IP de mon serveur, il redirige uniquement le trafic http sur mon serveur – Tyler

+0

@Tyler 1 mois plus tard - pour moi, rediriger le trafic https n'a pas vraiment d'importance car, en par défaut, tous les navigateurs vont à http (port 80). Si quelqu'un mettait délibérément un https, il recevrait juste un avertissement disant qu'il avait un mauvais certificat que je ne pense pas être si mauvais. – arjunpat