Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Apache est le serveur Web le plus connu et depuis 1996 au moins le plus répandu sur Internet.
Sa popularité vient de sa grande stabilité et de sa bonne tenue à la charge. Il est présent dans
toutes les architectures à serveur de contenu dynamique LAMP et WAMP (Linux/Windows-
Apache-MySQL-PHP), et sa structure modulaire le rend apte à la plupart des utilisations.
1 Installation de Apache :
À la suite de cette installation votre serveur doit fonctionner et être accessible à l'adresse
http://localhost
2 Fichiers de configuration
Pour les systèmes de type Debian, les fichiers de configuration de Apache se situent dans le
dossier /etc/apache2 :
directive1 valeur1
directive2 valeur2
...
<directive_conteneurvaleur>
directive3 valeur3
directive4 valeur4
...
</directive_conteneur>
Exemple :
ServerTokens Prod
ServerSignature Off
Avant
Après
Il est fréquent qu’un serveur Apache physique héberge plusieurs sites web différents. C’est ce
qui permet aux hébergeurs de gérer les sites web de dizaines de clients sur un seul serveur.
Cette technologie est connue en environnement Apache sous le nom de Virtual Host (hôte
virtuel).
Les sites virtuels par noms d’hôtes où le serveur fournit un contenu différent en
fonction du nom d’hôte présent dans l’URL par lequel il est contacté ;
Les sites virtuels sur adresses IP où le serveur fournit un contenu différent selon
l’adresse IP par laquelle il est contacté ;
Les sites virtuels sur par port où le serveur fournit un contenu différent selon port par
lequel il est contacté.
Comme le site virtuel est reconnu sur son nom d’hôte, la directive ServerName doit être
présente systématiquement dans les conteneurs d’hôte virtuel, et le nom associé doit être
précisément celui par lequel les clients accéderont au serveur (le nom contenu dans l’URL).
Configuration:
<VirtualHost> Déclaration d’un hôte virtuel : tout ce qui se trouve dans le conteneur
concerne l’hôte virtuel.
*:80 L’hôte virtuel est éligible aux requêtes arrivant sur n’importe quelle
adresse IP du serveur et sur le port 80.
ServerName nom Cet hôte virtuel sera éligible aux requêtes vers le nom de serveur nom. Il
sera actif pour les requêtes vers http://nom.
DocumentRoot rep Les pages web de cet hôte virtuel sont dans le répertoire rep.
Test
Une directive VirtualHost doit être utilisée pour chaque adresse IP utilisée. Elle contient la
déclaration de répertoire contenant les données html correspondant au site virtuel. Cette
déclaration se fait par la directive DocumentRoot.
Configuration:
adresse_x:80 L’hôte virtuel est éligible aux requêtes arrivant sur l’adresse IP
configurée du serveur et sur le port 80.
ServerName nom Facultatif s’il existe une résolution de noms inverse. Sinon, peut
renvoyer un message d’erreur non bloquant.
DocumentRoot rep Les pages web de cet hôte virtuel sont dans le répertoire rep.
Test
Pour restreindre l’accès par authentification à un site complet ou une partie du site, il suffit
de restreindre l’accès au répertoire du contenu web.
Exemple :
Sans authentification :
Avec authentification :
Une méthode alternative consiste à placer un fichier .htaccess dans le répertoire en question,
et d’y intégrer les directives devant s’appliquer au contenu du répertoire.
Ces fichiers spéciaux se nomment en général .htaccess, mais tout autre nom peut être spécifié
à l'aide de la directive AccessFileName.
Exemple :
<Files ~ "^\.ht">
Order allow,deny
Deny from all
Satisfy all
</Files>
Le filtrage par IP permet de choisir les adresses IP qui ont accès ou non aux pages du site.
SSL (Secure Socket Layer) est un protocole de sécurisation des couches applicatives. Il
fonctionne avec de nombreux protocoles, mais son usage le plus répandu est la sécurisation
de http (https).
Les certificats numériques X509 ont pour but d’établir de façon formelle un lien entre une
identité (nom, adresse IP, etc.) et une clé publique.
Les certificats ne peuvent être contrefaits car ils sont signés par un tiers en qui toutes les
parties placent leur confiance. Ces tiers sont appelés « Certificate Authority » (autorité de
certification).
Le fonctionnement de HTTP avec SSL requiert qu’un certificat contenant la clé publique du
serveur web soit envoyé au navigateur client et que cette clé publique soit toujours envoyée
sous forme de certificat. Apache configuré pour SSL doit donc disposer d’un certificat qu’il
pourra envoyer à ses clients.
Syntaxe :
openssl req -x509 -nodes -newkey rsa:taille -keyout fichier_clé -out fichier_certificat
La plupart de ces champs sont informatifs, mais dans le cadre de l’utilisation de certificat pour
un serveur web, le champ Common Name (nom commun) doit impérativement
correspondre au nom DNS qui figurera dans l’URL d’accès au serveur. Dans le cas contraire,
le navigateur du client opposera une alerte de sécurité lors de la vérification du certificat de
serveur.
Exemple :
Exemple :
Il faut préciser au serveur quelles sont les clés à utiliser pour son fonctionnement SSL. Il doit
disposer de sa clé privée, et de son certificat qui contiendra sa clé publique.
Les directives :
SSLCertificateFile /chemin/fichier_certificat
SSLCertificateKeyFile /chemin/fichier_clé
Ensuite dire au serveur de démarrer le moteur SSL qui une fois l’authentification réalisée,
permettra le cryptage des échanges entre le client et le serveur.
SSLEngine on
Exemple :
Après configuration du site sécurisé, toutes les requêtes vers http devront être redirigées en https.
Exemple :