Serveur Web Apache2
Architecture & Organisation
Pour chaque site web hébergé sur le serveur web, il faudra systématiquement créer et référencer :
• 1 compte d’accès SFTP • 1 hôte virtuel Apache2 (VHost) • 1 certificat électronique SSL • 1 nom de domaine • 1 base de données SQL
- Chaque site web dispose d’un répertoire web à la racine :
/var/www
- Le nom du répertoire du site web reprend son nom de site (FQDN) ainsi que la version de développement du site :
/var/www/exemple/2.5.0/
- S'il s'agit de sites intranets, les certificats pour les sites web nécessitant une connexion SSL sont stockés dans le répertoire :
/etc/ssl/private
- Et sont nommés tel que définit :
- site1.domaine.tld.key : fichier de clé privé pour le site exemple.
- site1.domaine.tld.csr : fichier de demande de certificat pour le site exemple.
- site1.domaine.tld.crt : certificat SSL pour le site exemple.
- Le cas échéant, le programme certbot sera utilisé pour générer des certificats Let's Encrypt.
Gestion des comptes SFTP
|
Un compte SFTP permet de se connecter au système de fichiers du serveur web de manière sécurisée. Utiliser un client comme Filezilla pour vous connecter en SFTP. |
Création d’un utilisateur SFTP
- Création de l’utilisateur UNIX exemple :
|
|
- Affectation de l’utilisateur au groupe UNIX SFTP :
|
|
Changer le mot de passe d’un compte SFTP
- Pour réinitialiser ou mettre à jour le mot de passe d’un compte SFTP, utiliser la commande passwd.
|
|
Supprimer un compte SFTP
- Dissocier l’utilisateur du groupe SFTP :
|
|
- Supprimer le compte utilisateur :
|
|
Préparation du dossier web
Création du répertoire web
- Depuis la racine /var/www/ créer le répertoire de l’application nommé par le nom du site :
|
|
- Ensuite, créer un sous-répertoire correspondant à la version courante de l’application :
|
|
Définition des permissions d’accès
- Affecter l’utilisateurs exemple à la racine /var/www/exemple :
|
|
- Autoriser les droits rwx pour le propriétaire et rx pour tous les utilisateurs sur le répertoire :
|
|
Création de l’hôte virtuel (Vhost)
Création du Vhost http
- Depuis la racine /etc/apache2/site-available, créer le fichier exemple.domaine.tld.conf et y insérer / adapter les lignes suivantes :
<VirtualHost *:80> DocumentRoot /var/www/exemple.domaine.tld ServerName exemple.domaine.tld ErrorLog ${APACHE_LOG_DIR}/exemple.domaine.tld_error.log CustomLog ${APACHE_LOG_DIR}/exemple.domaine.tld_access.log combined <Directory /var/www/exemple.domaine.tld> allow from all AllowOverride all Options +Indexes </Directory> </VirtualHost>
- Activation de l’hôte virtuel exemple.domaine.tld :
|
|
- Redémarrer le service Apache2 pour prendre en compte les modifications :
|
|
- Le site web est dès à présent accessible depuis l’url : http://exemple.domaine.tld.
Création du Vhost https
- Depuis la racine /etc/apache2/site-available, créer le fichier exemple.domaine.tld.conf et y insérer / adapter les lignes suivantes :
<VirtualHost *:80> DocumentRoot /var/www/exemple.domaine.tld ServerName exemple.domaine.tld ErrorLog ${APACHE_LOG_DIR}/exemple.domaine.tld_error.log CustomLog ${APACHE_LOG_DIR}/exemple.domaine.tld_access.log combined <Directory /var/www/exemple.domaine.tld> allow from all AllowOverride all Options +Indexes </Directory> </VirtualHost> <VirtualHost *:443> DocumentRoot /var/www/exemple.domaine.tld ServerName exemple.domaine.tld ErrorLog ${APACHE_LOG_DIR}/exemple.domaine.tld_error.log CustomLog ${APACHE_LOG_DIR}/exemple.domaine.tld_access.log combined <Directory /var/www/exemple.domaine.tld> allow from all AllowOverride all Options +Indexes </Directory> SSLEngine on SSLCertificateFile /etc/ssl/private/exemple.domaine.tld.crt SSLCertificateKeyFile /etc/ssl/private/exemple.domaine.tld.key </VirtualHost>
- Activation de l’hôte virtuel exemple.domaine.tld :
|
|
- Redémarrer le service Apache2 pour prendre en compte les modifications :
|
|
- Le site web est dès à présent accessible depuis l’url : https://exemple.domaine.tld.