La configuration Apache 2.2 Lhébergement virtuel
Lhébergement virtuel 1.Présentation 2.Les directives Directory 3.La réécriture durl 4.Ajouter un certificat SSL 5.Les document roots virtuels
Lhébergement virtuel Il existe deux types de résolution, celle par IP et celle par nom: – La résolution par IP nécessite davoir une IP différente pour chaque serveur. – La résolution par nom sappuie sur les informations transmises par le client dans les en-têtes HTTP. La résolution par nom est beaucoup plus simple à mettre en place, il suffit dajouter des enregistrements dans notre serveur DNS afin que chaque domaine pointe sur le serveur. Nous utiliserons cette dernière pour nos hébergements virtuels.
Lhébergement virtuel Les configurations dhébergement virtuels peuvent se faire dans le fichier de configuration apache « httpd.conf », cependant il est plus commun de les ajouter dans un fichier ou des fichiers spécifiques. Voici la configuration minimale dun hébergement virtuel: DocumentRoot "/var/www/monserveur" ServerName monserveur.com
Les directives Directory Elles sajoutent dans des balises « » à lintérieur de la configuration de lhébergement virtuel. Ces directives permettent de définir les paramètres qui seront propres à un dossier. On ajoute généralement une ou plusieurs directives directory sur le dossier racine (DocumentRoot), mais il est tout à fait possible den mettre sur plusieurs dossiers. Les directives sont valides récursivement pour tous les sous-dossiers concernés. Attention, les directives directory ne sont valides quà lintérieur de leur section « ».
Les directive Directory On ajoute simplement une balise « » dans la configuration de lhébergement virtuel afin dy définir toutes les configurations relatives au dossier comme: AllowOverride All – Autorise la surcharge de configuration de dossier grâce à un.htaccess Options FollowSymLinks – Autorise lutilisation des liens symboliques Options Indexes – Autorise les listes de fichiers (Attention) Allow ou Deny – Permet de gérer les accès au dossier DocumentRoot "/var/www/monserveur" ServerName monserveur.localhost AllowOverride all
La réécriture lurl La réécriture durl se configure grâce à des directives directory. « RewriteEngine On » permet dactiver le module. « RewriteBase » permet de définir le sous-dossier à partir duquel la réécriture est effective. « RewriteRule » permet dajouter la ou les règles de réécriture. « RewriteCond » permet dajouter une ou plusieurs conditions à la règle de réécriture suivante.
La réécriture lurl La règle de réécriture se définie à laide dune expression régulière en premier argument. Les parenthèses capturantes permettent de récupérer des variables $1, $2, etc. dans lurl réelle définie en deuxième argument. DocumentRoot "/var/www/monserveur" ServerName monserveur.com RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^index-(.*)$ index.php?page=$1
La réécriture lurl Aux règles de réécriture, il est possible dajouter des drapeaux entre crochets à la fin dun « RewriteRule ». Ces drapeaux vont modifier le comportement classique de la règle, ils peuvent être plusieurs sur chaque règle. Il en existe un 20ène comme Last [L], Next [N], No Case [NC], Forbidden [F], Query String Append [QSA], etc. Voici la liste de tous les drapeaux sur Apache 2.2:
Ajouter un certificat SSL Comme vu précédemment dans la présentation sur le cryptage, le chiffrement SSL se base sur RSA et a besoin pour son fonctionnement dune clé privée (PKI) et dune publique, Cette dernière est présente dans lensemble du certificat (CRT). Un deuxième certificat est également nécessaire, celui du tiers, lautorité de certification (CA).
Ajouter un certificat SSL Dans un premier temps, il suffit de générer une clé privée avec un algorithme et un chiffrement particulier. Puis dans un deuxième temps, on génère une requête de certificat (CSR) qui va permettre de créer un certificat valide pour le Web, un certificat signé. Enfin, le CSR est soumis à lautorité de certification qui va nous délivrer le certificat CRT, le fichier réellement utile. Le format PEM est le format standard des certificats dans Apache, il sagit dun certificat codé en base64.
Ajouter un certificat SSL Les directives SSL sont des directives de Virtual Host (donc pas Directory). Il est préférable dajouter le CA, même si celui-ci est généralement présent dans le browser et quun lien est indiqué pour le télécharger au sein du CRT. DocumentRoot "/var/www/monserveur" ServerName monserveur.com SSLEngine on SSLCertificateFile "/var/ssl/server.crt" SSLCertificateKeyFile "/var/ssl/server.key" SSLCACertificateFile "/var/ssl/ca.crt"
Les document roots virtuels Il est aussi possible de faire des document roots dynamiques afin déviter davoir à faire une configuration spécifique pour chaque sous-domaine. Dans la définition du « ServerAlias » il suffit dajouter des wildcards et de les récupérer dans le « VirtualDocumentRoot » dans %1, %2, etc. ServerName ServerAlias *.monserveur.com VirtualDocumentRoot "/var/www/%1"