« Serveur Web Apache2 » : différence entre les versions

De NCad Wiki
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Ligne 79 : Ligne 79 :
=== Création du Vhost http ===
=== Création du Vhost http ===


* Depuis la racine '''/etc/apache2/site-available''', créer le fichier '''exemple.conf''' et y insérer / <span style="color:orange">adapter</span> les lignes suivantes :
* Depuis la racine '''/etc/apache2/site-available''', créer le fichier '''exemple.domaine.tld.conf''' et y insérer / <span style="color:orange">adapter</span> les lignes suivantes :


  <VirtualHost *:80>
  <VirtualHost *:80>
Ligne 104 : Ligne 104 :


* Le site web est dès à présent accessible depuis l’url : '''http://exemple.domaine.tld'''.
* 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 / <span style="color:orange">adapter</span> les lignes suivantes :
<VirtualHost *:80>
DocumentRoot /var/www/<span style="color:orange">exemple.domaine.tld</span>
ServerName <span style="color:orange">exemple.domaine.tld</span>
ErrorLog ${APACHE_LOG_DIR}/<span style="color:orange">exemple.domaine.tld</span>_error.log
CustomLog ${APACHE_LOG_DIR}/<span style="color:orange">exemple.domaine.tld</span>_access.log combined
<Directory /var/www/<span style="color:orange">exemple.domaine.tld</span>>
allow from all
AllowOverride all
Options +Indexes
</Directory>
</VirtualHost>
<VirtualHost *:443>
DocumentRoot /var/www/<span style="color:orange">exemple.domaine.tld</span>
ServerName <span style="color:orange">exemple.domaine.tld</span>
ErrorLog ${APACHE_LOG_DIR}/<span style="color:orange">exemple.domaine.tld</span>_error.log
CustomLog ${APACHE_LOG_DIR}/<span style="color:orange">exemple.domaine.tld</span>_access.log combined
<Directory /var/www/<span style="color:orange">exemple.domaine.tld</span>>
allow from all
AllowOverride all
Options +Indexes
</Directory>
SSLEngine on
SSLCertificateFile /etc/ssl/private/<span style="color:orange">exemple.domaine.tld</span>.crt
SSLCertificateKeyFile /etc/ssl/private/<span style="color:orange">exemple.domaine.tld</span>.key
</VirtualHost>
* Activation de l’hôte virtuel '''exemple.domaine.tld''' :
{{ Box Console | objet=root@apache2:~$ a2ensite exemple.domaine.tld.conf }}
* Redémarrer le service '''Apache2''' pour prendre en compte les modifications :
{{ Box Console | objet=root@apache2:~$ service apache2 restart }}
* Le site web est dès à présent accessible depuis l’url : https://exemple.domaine.tld.

Version du 5 juillet 2024 à 19:13

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