Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| lamp_plus [Le 09/05/2007, 04:20] – lien vers le tutoriel sécuriser apache2 _Enchained | lamp_plus [Le 31/05/2018, 14:24] (Version actuelle) – obsolète L'Africain | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | {{tag> | ||
| - | ---- | ||
| - | |||
| - | ====== Serveur LAMP - Aller plus loin ====== | ||
| - | >page en cours de rédaction | ||
| - | |||
| - | ===== Sécuriser Apache ===== | ||
| - | Consultez le tutoriel [[: | ||
| - | |||
| - | ===== Les jeux de caractères (encodages) du Serveur Web Apache2 ===== | ||
| - | Si dans vos pages web, les caractères accentués sont remplacés par des caractères incompréhensibles comme « � » ou « é », vous avez un problème avec les jeux de caractères (ou charset). | ||
| - | |||
| - | Par défaut, lorsqu' | ||
| - | < | ||
| - | |||
| - | Ceci veut dire que le jeu de caractères qui sera ajouté à toutes les réponses qui n'ont aucun paramètre sur le type de contenu dans l' | ||
| - | |||
| - | En résumé, si votre fichier ''/ | ||
| - | |||
| - | Pour résoudre ce problème plusieurs solutions s' | ||
| - | |||
| - | ==== Laisser le navigateur Web choisir l' | ||
| - | [[: | ||
| - | < | ||
| - | |||
| - | ==== Décider du jeu de caractères à utiliser par défaut ==== | ||
| - | Si vous voulez forcer l' | ||
| - | < | ||
| - | |||
| - | __Exemple :__ pour l' | ||
| - | < | ||
| - | |||
| - | > | ||
| - | >< | ||
| - | > | ||
| - | |||
| - | ===== Les Hôtes Virtuels (VirtualHost) ===== | ||
| - | Consultez le tutoriel sur [[: | ||
| - | |||
| - | ===== III. Perte du mot de passe mysql ===== | ||
| - | Dans cette section, nous vous proposons deux méthodes bien distinctes pour que vous puissiez re-créer le mot de passe de l' | ||
| - | |||
| - | Avant toute chose, il convient d' | ||
| - | < | ||
| - | ==== a. Première méthode ==== | ||
| - | Il faut commencer par créer un fichier contenant le nouveau mot de passe que vous voulez attribuer à l' | ||
| - | |||
| - | **Ps :** Dans la mesure ou ce mot de passe est stocké en clair, il est vivement recommandé de le mettre dans un répertoire suffisamment sûr. N' | ||
| - | < | ||
| - | On redémarre le server mysql en root : | ||
| - | < | ||
| - | où | ||
| - | < | ||
| - | Et voilà, votre nouveau mot de passe est pris en compte. | ||
| - | On stoppe à nouveau le serveur lancé : | ||
| - | < | ||
| - | Si '' | ||
| - | < | ||
| - | Où sinon, rebootez votre machine. | ||
| - | |||
| - | Et voilà, il ne reste plus qu'a relancez le service mysql proprement : | ||
| - | < | ||
| - | Ceci est inutile si vous venez de rebooter votre machine. | ||
| - | ==== b. Deuxième méthode ==== | ||
| - | Vous pouvez trouver une méthode alternative ici : [[http:// | ||
| - | |||
| - | Si mysql vous indique qu'il ne veut pas démarrer en root, Changez le II. en : | ||
| - | < | ||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | ===== IV. Sécurisation d'un Site Web via Protocol SSL (Secure Socket Layer) ===== | ||
| - | |||
| - | Dans cette section, je vous propose de prendre connaissance d'une procédure permettant de sécuriser un **hôtes virtuel** grâce au **Protocol SSL** (Secure Socket Layer). | ||
| - | |||
| - | |||
| - | |||
| - | ==== 1. Le Protocol SSL en quelques mots ==== | ||
| - | |||
| - | **SSL** (Secure Sockets Layer) est un protocole qui a été développé par la société Netscape. | ||
| - | |||
| - | Ce protocol permet à deux machines de communiquer de manière sécurisée. Les informations échangées entre les deux machines sont de ce fait inviolables. | ||
| - | |||
| - | **Le Protocol SSL** se traduit par la combinaison de deux protocols bien distincts (// | ||
| - | |||
| - | Pour obtenir plus d' | ||
| - | |||
| - | |||
| - | |||
| - | ==== 2. Mise en application avec le Serveur Http Apache2 ==== | ||
| - | === A. Installation de la librairie OpenSSL : === | ||
| - | Pour pouvoir utiliser le protocole SSL avec le Serveur http Apache2, la librairie **openssl** doit être préalablement installée sur votre système. Pour installer cette librairie, il vous suffit de taper la commande suivante dans un terminal : | ||
| - | < | ||
| - | sudo apt-get install openssl | ||
| - | </ | ||
| - | **Ps :** Il se peut que cette librairie soit déjà installée sur votre système. | ||
| - | === B. Activation du module SSL du Serveur Http Apache2 : === | ||
| - | Pour que le protocole SSL puisse fonctionner avec le **Serveur Http Apache2**, il faut activer un module spécifique nommé **SSL**. | ||
| - | |||
| - | Pour activer ce module, il vous suffit de taper les commandes suivantes dans un terminal : | ||
| - | |||
| - | **1.** On active le module SSL : | ||
| - | < | ||
| - | sudo a2enmod ssl | ||
| - | </ | ||
| - | **2.** On demande au **Serveur Http Apache2** de relire ses fichiers de configuration pour que les changements soient pris en comptes : | ||
| - | < | ||
| - | sudo / | ||
| - | </ | ||
| - | === C. Les Certificats : === | ||
| - | Les certificats permettent de fournir divers informations concernant l' | ||
| - | |||
| - | De même, afin de garantir l' | ||
| - | |||
| - | Dans la plupart des cas, l' | ||
| - | |||
| - | **<Note Importante> | ||
| - | |||
| - | Dans le cadre de ce tutoriel, je présente la procédure à suivre pour mettre en place un Site Web sécurisé via protocole SSL en utilisant un Certificat auto-signé. | ||
| - | |||
| - | Je part du principe que nous avons déjà mis en place un Hôtes virtuel basé sur le nom nommé **nuxwin.com** (cf. ci-avant), ce dernier étant accessible sur le **port 80** (http:// | ||
| - | |||
| - | **</Note Importante> | ||
| - | |||
| - | Pour générer un certificat auto-signé avec **Ubuntu**, il nous suffit de taper les commandes suivantes dans un terminal : | ||
| - | |||
| - | **1.** On se place dans le répertoire dans lequel le certificat doit être généré : | ||
| - | < | ||
| - | cd / | ||
| - | </ | ||
| - | **2.** On lance la commande de génération : | ||
| - | < | ||
| - | sudo apache2-ssl-certificate | ||
| - | </ | ||
| - | (Note: par défaut, apache2-ssl-certificate génère un certificat valable 1 mois. Il est possible d' | ||
| - | |||
| - | et ensuite, on répond aux questions posées : | ||
| - | |||
| - | **a. Première question :** | ||
| - | < | ||
| - | Country Name (2 letter code) [GB]: | ||
| - | </ | ||
| - | Il s'agit ici d' | ||
| - | |||
| - | **b. Deuxième question :** | ||
| - | < | ||
| - | State or Province Name (full name) [Some-State]: | ||
| - | </ | ||
| - | Ici, nous devons indiquer le nom de notre pays. Étant situé en France, Nous indiquons : FRANCE et nous validons par la touche Enter. | ||
| - | |||
| - | **c. Troisième question :** | ||
| - | < | ||
| - | Locality Name (eg, city) []: | ||
| - | </ | ||
| - | Ici, nous devons indiquer le nom de la ville où nous nous situons. Comme nous sommes basé à CAEN, nous indiquons : CAEN et nous validons par la touche Enter. | ||
| - | |||
| - | **d. Quatrième question :** | ||
| - | < | ||
| - | Organization Name (eg, company; recommended) []: | ||
| - | </ | ||
| - | Ici, nous devons indiquer le nom de notre organisation, | ||
| - | |||
| - | **e. Cinquième question :** | ||
| - | < | ||
| - | Organizational Unit Name (eg, section) []: | ||
| - | </ | ||
| - | Ici, Nous devons indiquer le nom de la section de notre organisation, | ||
| - | |||
| - | **f. Sixième question :** | ||
| - | < | ||
| - | server name (eg. ssl.domain.tld; | ||
| - | </ | ||
| - | Ici, il convient de faire particulièrement attention à ce que nous allons entrer. Nous devons indiquer le nom de domaine que nous désirons sécuriser. En ce qui nous concerne, il s'agit du domaine : **nuxwin.com**. Nous indiquons donc nuxwin.com et nous validons par la touche Enter. | ||
| - | |||
| - | **g. Septième question :** | ||
| - | < | ||
| - | Email Address []: | ||
| - | </ | ||
| - | Ici, il s'agit d' | ||
| - | === D. Ajout de la directive Listen 443 : === | ||
| - | Par défaut, le **Serveur Http Apache2** est configuré pour écouter sur le **port 80**. Il s'agit là de la configuration usuelle d'un Serveur Web. Cependant, le protocole SSL a besoin d'un port spécifique pour pouvoir fonctionner. Il s'agit du **port 443**. | ||
| - | |||
| - | Nous allons donc rajouter une directive de configuration nommée **Listen** qui permettra d' | ||
| - | |||
| - | Pour demander au **Serveur Web Apache2** d' | ||
| - | < | ||
| - | Listen 443 | ||
| - | </ | ||
| - | Ensuite, il suffit de demander au **Serveur Web Apache2** de relire ses fichiers de configuration pour que les changements soient pris en comptes : | ||
| - | < | ||
| - | sudo / | ||
| - | </ | ||
| - | === E. Création du fichier de configuration === | ||
| - | Comme indiqué ci-avant, dans le cadre de ce tutoriel, je suis parti du principe que nous avions déjà configuré un hôte virtuel basé sur le nom accessible sur le **port 80**. Ceci implique donc l' | ||
| - | |||
| - | Voici le contenu de ce fichier : | ||
| - | < | ||
| - | < | ||
| - | DocumentRoot / | ||
| - | ServerName nuxwin.com | ||
| - | </ | ||
| - | </ | ||
| - | **Ps :** Je rappelle qu'il s'agit du contenu minimal d'un virtualhost. | ||
| - | |||
| - | Pour sécuriser cet Hôte Virtuel, nous allons donc devoir modifier ce fichier en y ajoutant un hôte virtuel accessible sur le **port 443**, ce dernier contenant des directives particulières qui sont les suivantes : | ||
| - | |||
| - | **1.** Directive **SSLEngine** : | ||
| - | |||
| - | Cette directive permet d' | ||
| - | |||
| - | **2.** Directive **SSLCertificateFile** : | ||
| - | |||
| - | Cette directive définit le certificat authentifiant le Serveur auprès des clients. L' | ||
| - | |||
| - | **3.** Directive **SSLCertificateKeyFile** : | ||
| - | |||
| - | Cette directive définit la clé privée du Serveur utilisée pour signer l' | ||
| - | |||
| - | Toutefois, il convient de noter que le chemin ne sera pas directement celui du fichier. En effet, il s' | ||
| - | |||
| - | Par ailleurs, comme nous l' | ||
| - | Nous rajouterons donc cette directive (// | ||
| - | |||
| - | Enfin, afin que les clients puissent continuer d' | ||
| - | |||
| - | Voici donc le contenu de notre fichier une fois modifié : | ||
| - | < | ||
| - | NameVirtualHost 192.168.0.2: | ||
| - | |||
| - | < | ||
| - | ServerName nuxwin.com | ||
| - | Redirect / https:// | ||
| - | </ | ||
| - | |||
| - | < | ||
| - | ServerName nuxwin.com | ||
| - | DocumentRoot / | ||
| - | |||
| - | SSLEngine on | ||
| - | SSLCertificateFile / | ||
| - | SSLCertificateKeyFile / | ||
| - | </ | ||
| - | </ | ||
| - | **Ps :** //<nom du fichier.key>// | ||
| - | === F. Reload du Serveur Http Apache2 : === | ||
| - | Afin que les modifications que nous venons d' | ||
| - | |||
| - | Pour ce faire, il suffit de taper la commande suivante dans un terminal : | ||
| - | < | ||
| - | sudo / | ||
| - | </ | ||
| - | Normalement, | ||
