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 03/06/2022, 15:14]
78.196.241.242 [Les Certificats] MAJ
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.
  
  
 ==== Les Certificats ==== ==== Les Certificats ====
  
-[[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>​
-puis recharger la configuration d'​Apache2 ​faites ​:+ 
 +puis recharger la configuration d'​Apache2 ​avec :
 <​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 65: 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 79: 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 :
Ligne 165: Ligne 166:
  
 Votre site devrait maintenant être accessible uniquement en HTTPS. Votre site devrait maintenant être accessible uniquement en HTTPS.
-==== Renforcer la sécurité ==== +==== Renforcer la sécurité ====
  
 Si vous voulez optimiser la sécurité des échanges en HTTPS, le plus simple est d'​utiliser le [[https://​mozilla.github.io/​server-side-tls/​ssl-config-generator/​|générateur de configuration de Mozilla]] Si vous voulez optimiser la sécurité des échanges en HTTPS, le plus simple est d'​utiliser le [[https://​mozilla.github.io/​server-side-tls/​ssl-config-generator/​|générateur de configuration de Mozilla]]
  
 --- //​[[:​utilisateurs:​bruno|bruno]]//​ --- //​[[:​utilisateurs:​bruno|bruno]]//​
  • tutoriel/securiser_apache2_avec_ssl.1654262090.txt.gz
  • Dernière modification: Le 03/06/2022, 15:14
  • par 78.196.241.242