Apache : deux Virtualhosts pour une seule IP
Résolu/Ferméavion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 - 31 août 2022 à 17:34
- Apache : deux Virtualhosts pour une seule IP
- Apache open office gratuit - Télécharger - Suite bureautique
- Apache openoffice pour android gratuit - Télécharger - Suite bureautique
- Apache ftp server ✓ - Forum Webmastering
- Apache iso - Forum Linux / Unix
- Uwamp apache ne démarre pas ✓ - Forum Créer un site
1 réponse
Modifié le 31 août 2022 à 12:27
Bonjour,
<VirtualHost example.dom>
Il faut éviter ceci autant que possible, comme suggéré par la documentation :
https://httpd.apache.org/docs/2.4/mod/core.html#virtualhost
Dans ce cas, example.com est résolu afin d'en obtenir l'IP lors du démarrage d'Apache.
Ça influence donc uniquement l'IP pour laquelle le VirtualHost est valide, mais ça ne détermine toujours pas le nom de la même façon que ServerName.
Je t'invite à lire/comprendre cette partie de la documentation :
When a request is received, the server first maps it to the best matching
<VirtualHost>
based on the local IP address and port combination only. Non-wildcards have a higher precedence. If no match based on IP and port occurs at all, the "main" server configuration is used.If multiple virtual hosts contain the best matching IP address and port, the server selects from these virtual hosts the best match based on the requested hostname. If no matching name-based virtual host is found, then the first listed virtual host that matched the IP address will be used. As a consequence, the first listed virtual host for a given IP address and port combination is the default virtual host for that IP and port combination.
Tes VirtualHost doivent donc ressembler à ceci :
<VirtualHost *:80>
DocumentRoot /www/site-par-defaut
</VirtualHost>
<VirtualHost *:443>
DocumentRoot /www/site-par-defaut
</VirtualHost>
<VirtualHost *:80>
ServerName example.com
DocumentRoot /www/example.com
</VirtualHost>
<VirtualHost *:443>
ServerName example.com
DocumentRoot /www/example.com
</VirtualHost>
De cette manière, http://ip/ ou https://ip/ afficheront /www/site-par-defaut.
Et http://example.com et https://example.com afficheront /www/example.com.
Voir aussi : https://httpd.apache.org/docs/2.4/vhosts/examples.html
Je ne saisis pas très bien ta question concernant la « sécurité ». La configuration des VirtualHost ne joue pas de rôle de sécurité. Si c'est concernant le HTTPS, il faut évidemment penser à l'utiliser. Si tu veux restreindre l'accès, ça peut se faire au niveau de l'application Web (authentification). Tu peux aussi faire du contrôle d'accès au niveau de Apache. https://httpd.apache.org/docs/2.4/howto/access.html
31 août 2022 à 14:24
Merci beaucoup pour ta réponse rapide. Je comprends mieux et cela me semble logique.
Lorsque j'ai parlé de "sécurité" (très vague de ma part), je parlais surtout de la syntaxe
qui posait quelques problèmes au niveau sécurité, d'après certaines informations relevées sur internet. J'avoue ne plus savoir sur quel forum j'ai vu ceci ...
Pour les accès, j'ai configuré avec
les accès restreints en fonction de mes répertoires.
J'avais déjà lu les liens que tu as donné, cependant il me manquait quelques éclaircissements.
Merci encore.
Modifié le 31 août 2022 à 17:34
J'ai du mal à voir à quel niveau ça pourrait constituer un risque de sécurité. Dans le cas d'un éventuel "DNS hijjacking", le résultat sera que le VirtualHost s'applique à une IP différente et donc, au pire, ça ne fonctionne pas, et surtout, la définition du VirtualHost n'impacte pas les interfaces et ports qui sont réellement écoutées par Apache, lesquels sont définis via l'instruction « Listen ».
La question initiale est-elle résolue ou rencontres-tu toujours des difficultés avec les VirtualHost ?