| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
| tutoriel:securiser_apache2_avec_ssl [Le 11/01/2023, 17:25] – [Création du certificat avec Let's encrypt] bruno | tutoriel:securiser_apache2_avec_ssl [Le 13/11/2024, 16:09] (Version actuelle) – [Création du certificat avec Let's encrypt] install python3-certbot-apache bcag2 |
|---|
| [[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 service. Cependant[[https://letsencrypt.org/|Let's encrypt]] permet maintenat d'obtenir des certificats gratuits. En outre Let's 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 |
| puis recharger la configuration d'Apache2 avec : | 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 -m 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 === |
| |
| ==== 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 : |