Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
tutoriel:securiser_apache2_avec_ssl [Le 08/11/2022, 03:46]
82.66.127.137 [Activation du module SSL/TLS]
tutoriel:securiser_apache2_avec_ssl [Le 13/11/2024, 16:09] (Version actuelle)
bcag2 [Création du certificat avec Let's encrypt] install python3-certbot-apache
Ligne 11: Ligne 11:
 ==== Le protocole TLS ==== ==== Le protocole TLS ====
  
-Le protocole [[https://​fr.wikipedia.org/​wiki/​Transport_Layer_Security|TLS]] permet à deux machines de communiquer de manière sécurisée. Les informations échangées entre les deux machines sont de ce fait pratiquement inviolables+Le protocole [[https://​fr.wikipedia.org/​wiki/​Transport_Layer_Security|TLS]] permet à deux machines de communiquer de manière sécurisée.\\ 
-Il doit assurer l'​authentification du serveur grâce à un certificat. La confidentialité des données grâce au chiffrement et l’intégrité des données.+Il assure authentification du serveur, le chiffrement des données en transit et le contrôle de leur intégrité. Les informations échangées entre les deux machines sont de ce fait pratiquement inviolables.
  
  
Ligne 19: Ligne 19:
 [[https://​fr.wikipedia.org/​wiki/​Certificat_%C3%A9lectronique|Un certificat]] permet de fournir diverses informations concernant l'​identité de son détenteur (la personne qui publie les données). Ce certificat s'​accompagne d'une **clé publique** qui est indispensable pour que la communication entre les machines soit chiffrée. [[https://​fr.wikipedia.org/​wiki/​Certificat_%C3%A9lectronique|Un certificat]] permet de fournir diverses informations concernant l'​identité de son détenteur (la personne qui publie les données). Ce certificat s'​accompagne d'une **clé publique** qui est indispensable pour que la communication entre les machines soit chiffrée.
  
-Afin de garantir l'​authenticité du certificat, ce dernier est signé numériquement ​provenant ​soit par une autorité de certification (Société spécialisée dans la certification) soit par le détenteur du certificat lui-même. Dans ce dernier cas, on parlera de certificat auto-signé.+Afin de garantir l'​authenticité du certificat, ce dernier est signé numériquement soit par une autorité de certification (Société spécialisée dans la certification) soit par le détenteur du certificat lui-même. Dans ce dernier cas, on parlera de certificat auto-signé.
  
-Dans la plupart des cas, l'​obtention d'​un ​certificat ​certifié par une AC (autorité de certification) ayant un prix assez élevé, les webmasters auront tendance à vouloir signer eux-même leur certificat. Ce faisant, il est à noter que dans ce cas, le certificat ne sera pas reconnu par les navigateurs web comme étant certifié.+Un certificat ​auto-signé n'est pas reconnu ​comme digne de confiance ​par les navigateurs web et générera un avertissement.
  
-[[http://​www.cacert.org|CA Cert]] permet d'​obtenir des certificats gratuits. Il vous faudra néanmoins installer le certificat racine dans votre navigateur. +Les autorités de certification font payer leur serviceCependant[[https://​letsencrypt.org/​|Let'​s encrypt]] permet ​maintenat ​d'​obtenir des certificats gratuits. En outre Let'Encrypt fournit l'​application [[https://​certbot.eff.org/​|cerbot]] qui simplifie grandement la création et la gestion des certificats.
- +
-[[https://​letsencrypt.org/​|Let'​s encrypt]] permet ​également ​d'​obtenir des certificats gratuits. En outre Let'​Encrypt fournit l'​application [[https://​certbot.eff.org/​|cerbot]] qui simplifie grandement la création et la gestion des certificats.+
  
 Pour ce tutoriel, nous supposons que nous avons déjà mis en place un [[:​apache2#​creation_d_hotes_virtuels|hôte virtuel]] basé sur le nom **example.com**,​ ce dernier étant accessible sur le **port 80** à l'​adresse http://​example.com Pour ce tutoriel, nous supposons que nous avons déjà mis en place un [[:​apache2#​creation_d_hotes_virtuels|hôte virtuel]] basé sur le nom **example.com**,​ ce dernier étant accessible sur le **port 80** à l'​adresse http://​example.com
Ligne 35: Ligne 33:
 Pour que le protocole TLS puisse fonctionner avec le Serveur HTTP Apache2, il faut activer le module **ssl** avec la commande : Pour que le protocole TLS puisse fonctionner avec le Serveur HTTP Apache2, il faut activer le module **ssl** avec la commande :
 <​code>​sudo a2enmod ssl</​code>​ <​code>​sudo a2enmod ssl</​code>​
-<​code>​sudo a2ensite default-ssl</​code>​ 
  
-**Si "bash: a2enmod : commande introuvable",​ ou "bash: a2ensite : commande introuvable"​**  +puis recharger la configuration d'​Apache2 ​avec :
-<​code>​sudo /​usr/​sbin/​a2enmod ssl</​code>​ +
-<​code>​sudo /​usr/​sbin/​a2ensite default-ssl</​code>​ +
- +
-puis recharger la configuration d'​Apache2 ​faites ​:+
 <​code>​sudo systemctl reload apache2</​code>​ <​code>​sudo systemctl reload apache2</​code>​
-Ou si vous êtes sur une ancienne version d'​Ubuntu : +
-<​code>​sudo service apache2 reload</​code>​+
 Pour vérifier l'​activation du module: Pour vérifier l'​activation du module:
-<​code>​apache2ctl ​-M | grep ssl </​code>​+<​code>​a2query ​-ssl</​code>​
  
 ==== Création du certificat avec Let's encrypt ==== ==== Création du certificat avec Let's encrypt ====
  
 Prérequis : Prérequis :
-  * avoir un nom de domaine pleinement qualifié ​ (nous utiliserons example.com dans la suite) ;+  * avoir un nom de domaine pleinement qualifié ​acheté auprès d'un bureau d’enregistrement ​(nous utiliserons example.com dans la suite) ​
 +  * avoir un enregistrement DNS mettant en correspondance le nom de domaine et l'​adresse IP publique du serveur ​;
   * avoir un serveur web apache déjà configuré, fonctionnel et accessible publiquement.   * avoir un serveur web apache déjà configuré, fonctionnel et accessible publiquement.
  
 === Installation de Certbot === === Installation de Certbot ===
-Les instructions pour installer et utiliser simplement certbot sont disponibles en anglais [[https://​certbot.eff.org/​|sur le site officiel.]] 
  
-En voici, un récapitulatif. ​Il suffit d'​installer le paquet certbot : +Il suffit d'​installer le paquet certbot : 
-<​code>​+<​code ​bash>
 sudo apt update sudo apt update
 sudo apt install certbot</​code>​ sudo apt install certbot</​code>​
 +<note tip>Il peut être nécessaire aussi d'​installer((src:​https://​stackoverflow.com/​questions/​68641213/​issue-with-certbot-to-generate-a-ssl-certificate)) <code bash>​sudo apt install python3-certbot-apache</​code>​ </​note>​
  
 === Générer le certificat avec Certbot === === Générer le certificat avec Certbot ===
 Certbot dispose de très nombreuses options qui sont documentées en anglais [[hhttps://​certbot.eff.org/​docs/​using.html|sur le site officiel]]. Certbot dispose de très nombreuses options qui sont documentées en anglais [[hhttps://​certbot.eff.org/​docs/​using.html|sur le site officiel]].
  
 +== Méthode n°1 ==
 Le script est très bien fait, ce qui implique qu'il est possible de simplement lancer, pour un serveur avec apache: Le script est très bien fait, ce qui implique qu'il est possible de simplement lancer, pour un serveur avec apache:
 <code bash> <code bash>
Ligne 71: Ligne 64:
 </​code>​ </​code>​
 Le script se déroule et pose des questions, à commencer par les domaine à passer en https, puis si on veut rediriger http vers https… Le script se déroule et pose des questions, à commencer par les domaine à passer en https, puis si on veut rediriger http vers https…
 +== Méthode n°2 ==
 Une autre méthode également simple pour générer un certificat en utilisant le greffon « //webroot// » est: Une autre méthode également simple pour générer un certificat en utilisant le greffon « //webroot// » est:
  
Ligne 85: Ligne 78:
  
 ==== Configuration de l'​hôte virtuel pour HTTPS ==== ==== Configuration de l'​hôte virtuel pour HTTPS ====
 +
 +<note important>​Uniquement si vous avez utilisé la méthode n°2 pour obtenir le certificat. Avec la méthode n°1 les fichiers sont générés automatiquement</​note>​
  
 [[:​tutoriel:​comment_editer_un_fichier|Ouvrez le fichier]] de configuration de votre hôte virtuel, par exemple /​etc/​apache2/​sites-available/​example.com.conf : [[:​tutoriel:​comment_editer_un_fichier|Ouvrez le fichier]] de configuration de votre hôte virtuel, par exemple /​etc/​apache2/​sites-available/​example.com.conf :
  • tutoriel/securiser_apache2_avec_ssl.1667875607.txt.gz
  • Dernière modification: Le 08/11/2022, 03:46
  • par 82.66.127.137