Serveur Web Apache2

De NCad Wiki
Aller à la navigation Aller à la recherche

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 :

root@apache2:~# adduser exemple

  • Affectation de l’utilisateur au groupe UNIX SFTP :

root@apache2:~# addgroup exemple sftp
root@apache2:~# addgroup exemple www-data

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.

root@apache2:~# passwd exemple
Nouveau mot de passe : ********
Retapez le nouveau mot de passe : ********
passwd: password updated successfully

Supprimer un compte SFTP

  • Dissocier l’utilisateur du groupe SFTP :

root@apache2:~# delgroup exemple sftp
Suppression de l'utilisateur « exemple » du groupe « sftp »... Fait.

  • Supprimer le compte utilisateur :

root@apache2:~# deluser exemple
Suppression de l'utilisateur « exemple »...
Attention ! Le groupe « exemple » ne contient plus aucun membre.
Fait.

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 :

root@apache2:~# mkdir /var/www/exemple

  • Ensuite, créer un sous-répertoire correspondant à la version courante de l’application :

root@apache2:~# mkdir /var/www/exemple/2.5.0

Définition des permissions d’accès

  • Affecter l’utilisateurs exemple à la racine /var/www/exemple :

root@apache2:~# chown exemple /var/www/exemple

  • Autoriser les droits rwx pour le propriétaire et rx pour tous les utilisateurs sur le répertoire :

root@apache2:~# chmod 755 /var/www/exemple -R

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 :

root@apache2:~$ a2ensite exemple.domaine.tld.conf

  • Redémarrer le service Apache2 pour prendre en compte les modifications :

root@apache2:~$ service apache2 restart

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 :

root@apache2:~$ a2ensite exemple.domaine.tld.conf

  • Redémarrer le service Apache2 pour prendre en compte les modifications :

root@apache2:~$ service apache2 restart