« Serveur Web et Certificat » : différence entre les versions

De RomainGuyot
(Page créée avec «  Nous allons créer ce que l'on appelle une machine LAMP, d'après Wikipédia une machine "LAMP est un acronyme désignant un ensemble de logiciels libres permettant de construire des serveurs de sites web. L'acronyme original se réfère aux logiciels suivants : * « Linux », le système d'exploitation ( GNU/Linux ) ; * « Apache », le serveur Web ; * « MySQL ou MariaDB », le serveur de base de données ; * À l'origine, « PHP », « Perl » ou « Pytho... »)
 
Aucun résumé des modifications
Ligne 234 : Ligne 234 :


<code>systemctl restart apache2</code>
<code>systemctl restart apache2</code>
===Redirection de port===
====Question 11====
Quel est l'objectif d'une redirection de port ?
Rendez vous dans le dossier suivate : <code>/etc/apache2/sites-available/</code>
Créer le fichier <code>monsite.fr.conf</code>
Entrez le code suivant dans le fichier que vous venez de créer :
<code>
<VirtualHost *:80>
ServerName monsite.fr
DocumentRoot var/www/html/
</VirtualHost>
</code>
Effectuez ensuite la commande suivante : <code> a2ensite monsite.fr.conf</code>
====Question 11====
Quel est l'objectif de cette commande ?
et enfin la commande suivante
<code>service apache2 reload</code>

Version du 3 avril 2025 à 08:29

Nous allons créer ce que l'on appelle une machine LAMP, d'après Wikipédia une machine "LAMP est un acronyme désignant un ensemble de logiciels libres permettant de construire des serveurs de sites web. L'acronyme original se réfère aux logiciels suivants : * « Linux », le système d'exploitation ( GNU/Linux ) ;

  • « Apache », le serveur Web ;
  • « MySQL ou MariaDB », le serveur de base de données ;
  • À l'origine, « PHP », « Perl » ou « Python », les langages de script."


Installation de la machine

Dans un premier temps, nous avons besoin d'une machine Linux Debian 12 sans interface graphique.

Cette machine se nomme debianLAMP, elle a besoin de 20Gb de stockage. Si besoin, aidez-vous du Tuto suivant

Installation d'une machine Debian sans interface graphique

Installation du serveur Web

Maintenant que notre machine est prête, nous allons installer notre serveur web qui vas héberger notre site.

pour cela effectuer la commande sudo apt-get install apache2

Une fois le téléchargement terminé, entrer la commande ip a dans votre terminal, noter votre adresse IP. Sur votre machine hôte, entrez l'adresse de votre Debian. Une page Apache doit s'afficher

Question 1

Le protocole utilisé est implicite, Quel est ce port et le protocole associé ?

Sur votre machine virtuelle, créer un dossier LAMP dans le dossier /var/www/html

Créer ensuite à l'intérieur du dossier LAMP un fichier index.html

Entrer ensuite le code suivant :

<!DOCTYPE html> <html lang="fr">

 <head>
   <meta charset="utf-8">
   <title>LAMP</title>
 </head>
 <body>
   Hello World !
 </body>

</html>

Question 2

Comment accéder à cette ressource depuis votre navigateur ?

L'objectif est maintenant d'avoir un lien utilisable plus facilement pour cela, nous avons besoin de modifier le fichier host de windows

Question 3

À quoi sert le fichier host ?

Ouvrez le bloc-notes en administrateur puis rendez-vous à l'emplacement suivant C:\Windows\System32\drivers\etc ajouter la ligne. IP de votre machine lamp.local

Question 4

Comment accéder à son site plus facilement maintenant ?

Sur votre machine Debian en root allez dans le dossier /etc/apache2/sites-available Créez un fichier lamp.local.conf et ajouter le code suivant : <VirtualHost *:80>

 ServerName lamp.local
 DocumentRoot /var/www/html/lamp

</VirtualHost>

Pour que les modifications soient effectives, il faut recharger apache2 pour cela effectuer les commandes suivantes a2ensite lamp.local.conf systemctl reload apache2

Question 5

Quel est l'objectif de cette manipulation ?

Il y a un problème sur notre serveur web pour le moment : nous avons accès à l'arborescence du server web.

Question 6

Pourquoi est-ce un problème  ?

Pour palier à ce problème, ajouter dans le VirtualHost du fichier lamp.local les lignes suivantes : <Directory /var/www/html/lamp>

 Options -Indexes +FollowSymLinks
 AllowOverride All
 Require all granted

</Directory>

Certificat SSL

Un certificat SSL est un certificat électronique qui authentifie l'identité d'un site Web et permet également d'avoir une connexion chiffrée. SSL (Secure Sockets Layer) est un protocole de sécurité qui crée un lien chiffré entre un serveur Web et un navigateur Web.

Un certificat SSL est un certificat électronique qui authentifie l'identité d'un site Web et permet une connexion chiffrée. SSL signifie « Secure Sockets Layer », c'est un protocole de sécurité qui crée un lien chiffré entre un serveur Web et un navigateur Web. Le certificat doit être renouvelé périodiquement.


Génération d'un certificat autosignée

Effectuer la commande suivante pour générer un certificat autosignée.

openssl req -x509 -nodes -days 3000 -newkey rsa:4094 -keyout /etc/ssl/lamplocal.key -out /etc/ssl/lamplocal.crt

La commande s'exécute, répondez ensuite aux questions que l'application OpenSSL vous pose.

Activation du module SSL

Dans le dossier /var/log/apache2 activer SSL grâce à la commande suivante :

a2enmod ssl

Puis redémarrer le service apache2.

Configuration du VirtualHost sur le port 443

  • Rendez-vous dans le dossier /etc/apache2/sites-available
  • Ouvrez le fichier lamp.local.conf
  • Sur La base du VirtualHost du port 80 faite le VirtualHost du port 443
  • Ajoutez la ligne SSLEngine on
  • Ajoutez la ligne SSLCertificateFile /etc/ssl/lamplocal.crt
  • Ajoutez la ligne SSLCertificateKeyFile /etc/ssl/lamplocal.key

Redémarrer le serveur

Rendez-vous sur le site https://lamp.local

Redirection du port 80 vers le port 443

Activer le mode rewrite avec la commande suivante : a2enmod rewrite

Remplacez le contenu du VirtualHost du port 80 avec le code suivant

ServerName lamp.local

RewriteEngine On

RewriteCond %{HTTPS} off

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

Installation des autres utilitaires

Nous avons besoin des autres utilitaires pour faire fonctionner notre machine LAMP, voici la commande à effectuer pour les installer apt install mariadb-server mariadb-client php libapache2-mod-php php-cli php-mysql php-zip php-curl php-xml wget -y

Question 7

À quoi sert l'argument -y

Nous allons maintenant vérifier que PHP fonctionne dans le dossier lamp, ajouter un fichier PHP nommé test.php et ajouter le code suivant : echo "<?php phpinfo(); ?>"

Rendez-vous sur la page web associé à votre fichier PHP

Question 8

D'après cette page, quelle est la version de PHP que vous venez d'installer ?

Question 9

Notre nom de serveur a-t-il bien été modifié du point de vue de PHP ?

Installation de SSH

Question 10

Quel est l'objectif de mettre en place le service SSH ?

Voici la commande pour installer le service SSH : apt install openssh-server

Ouvrez désormais, sur votre machine hôte, l'application puTTY. Dans la partie HostName, entrez l'adresse IP de votre machine, vérifiez que le port est le 22. Lancez ensuite la connexion avec le bouton Open

Travaillez désormais depuis le terminal de puTTY

Installation de la base de donnée

Nous allons procéder à une installation "propre" de la base de donnée, pour cela effectuer la commande suivante : mysql_secure_installation

Voici les réponses à fournir à la configuration demandées par l'utilitaire Enter current password for root (enter for none): Change the root password? [Y/n] Y New password: Re-enter new password: Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y

Nous allons maintenant nous connecter en root à la base de donnée

mysql -u root -p

nous allons créer un utilisateur dans cette base et lui attribuer des droits sur les tables

CREATE USER 'user'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* to 'user'@'localhost'; FLUSH PRIVILEGES; EXIT;


Nous allons maintenant installer phpmyadmin, pour cela faites la commande suivante : apt-get install phpmyadmin

À l'aide de la touche espace, sélectionné pache2 en serveur Web

Choisissez ensuite oui pour configurer la base par défaut

Entrez ensuite un mot de passe pour MySQL server.

sur votre machine hôte dans un navigateur, vous pouvez maintenant accéder depuis l'addresse http://lamp.local/phpmyadmin/ à phpmyadmin pour cela utiliser en nom d'utilisateur root et le mot de passe que vous vennez de saisir.

Pour s'assurer qu'Apache à bien admin l'ajout des différents modules, nous allons le relancer grâce à la commande :

systemctl restart apache2

Redirection de port

Question 11

Quel est l'objectif d'une redirection de port ?

Rendez vous dans le dossier suivate : /etc/apache2/sites-available/ Créer le fichier monsite.fr.conf

Entrez le code suivant dans le fichier que vous venez de créer :

<VirtualHost *:80> ServerName monsite.fr DocumentRoot var/www/html/ </VirtualHost>

Effectuez ensuite la commande suivante : a2ensite monsite.fr.conf

Question 11

Quel est l'objectif de cette commande ?

et enfin la commande suivante service apache2 reload