Dans cet article, nous allons vous montrer comment installer le client Let's Encrypt sur votre VPS Ubuntu 20.04, émettre un certificat SSL pour votre domaine et le configurer avec le serveur Web Apache.
Let's Encrypt est une autorité de certification (CA) qui permet à quiconque d'obtenir un certificat SSL gratuit avec des commandes simples et automatisées. Dans ce tutoriel, nous utiliserons un outil appelé certbot
, qui fait officiellement partie des efforts d'EFF pour chiffrer l'intégralité d'Internet. Grâce à cet outil pratique, configurer un certificat SSL pour protéger les visiteurs de votre site Web et améliorer la sécurité de votre site Web n'a jamais été aussi facile. Tous les certificats SSL fournis par Let's Encrypt peuvent être utilisés à des fins de production/commerciales sans frais ni frais. Commençons par l'installation et la configuration.
Commençons par l'installation - c'est une installation simple et ne prendra pas longtemps.
Prérequis
- Pour les besoins de ce didacticiel, nous utiliserons un VPS Ubuntu 20.04.
- Un utilisateur avec des privilèges sudo ou un accès root SSH complet est requis. Tous nos VPS sont livrés avec un accès root.
- Un nom de domaine valide pointant vers l'adresse IP de votre serveur. Dans ce tutoriel, nous utiliserons
domain.com
à titre d'exemple.
1. Connectez-vous à votre serveur
Avant de commencer, vous devez vous connecter à votre serveur via SSH en tant qu'utilisateur root. Pour cela, utilisez la commande suivante :
ssh root@IP_ADDRESS -p PORT_NUMBER
bien sûr, vous devrez remplacer IP_ADDRESS
et PORT_NUMBER
avec l'adresse IP réelle de votre serveur et le numéro de port SSH.
Une fois connecté, assurez-vous que votre serveur est à jour en exécutant les commandes suivantes :
sudo apt update sudo apt upgrade
2. Installer le serveur Web Apache2
Nous avons choisi d'utiliser l'un des serveurs Web les plus populaires dans notre article. Nous allons installer Apache2 car nous avons besoin d'un serveur Web sur lequel installer le certificat SSL gratuit Let's Encrypt. Il ne sert à rien d'avoir un certificat SSL sans aucune page Web. Découvrez quelques-unes des meilleures alternatives gratuites à Let's Encrypt.
Exécutez la commande suivante pour installer Apache2 :
sudo apt install apache2
Une fois Apache2 installé sur votre serveur, vous pourrez utiliser les commandes ci-dessous pour démarrer, arrêter et activer le service. Nous vous recommandons de l'activer afin qu'Apache puisse démarrer automatiquement à chaque redémarrage de votre serveur.
sudo systemctl stop apache2.service sudo systemctl start apache2.service sudo systemctl enable apache2.service
Pour confirmer que vous avez correctement installé Apache2, vous pouvez ouvrir votre navigateur Web préféré et saisir l'adresse IP de votre serveur ou votre domaine (nous supposons qu'il pointe vers votre serveur) et vous devriez pouvoir afficher la page par défaut d'Apache2 Ubuntu.
3. Configurer l'hôte virtuel Apache
Puisque Apache est maintenant installé sur votre serveur, nous pouvons continuer et vous montrer comment créer un hôte virtuel pour le domaine que vous souhaitez utiliser. Nous utiliserons nano comme éditeur, mais si vous ne préférez pas nano, vous pouvez utiliser n'importe quel éditeur de votre choix et créer un nouveau fichier de configuration appelé domain.com.conf
.
sudo nano /etc/apache2/sites-available/domain.com.conf
Collez ensuite la configuration ci-dessous dans le fichier et remplacez toutes les occurrences de domain.com
avec votre nom de domaine réel.
<VirtualHost *:80> DocumentRoot /var/www/html/domain.com ServerName domain.com ServerAlias www.domain.com <Directory /var/www/html/domain.com/> Options FollowSymlinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Une fois que vous avez terminé de modifier le fichier, enregistrez-le et fermez-le.
Une fois que vous avez configuré l'hôte virtuel, vous pouvez l'activer en exécutant les commandes suivantes.
Désactivez l'hôte virtuel préinstallé par défaut avec :
sudo a2dissite 000-default
ensuite, activez le domain.com
hôte virtuel :
sudo a2ensite domain.com.conf
aussi, vous devez vous assurer que le mod rewrite
est activé :
sudo a2enmod rewrite
Redémarrez Apache pour que les modifications prennent effet.
sudo systemctl restart apache2.service
4. Installer Certbot
Comme mentionné précédemment, nous utiliserons Certbot afin d'obtenir un certificat SSL gratuit de Let's Encrypt. Pour installer cet outil utile, nous devons activer l'universe
référentiel :
sudo apt install software-properties-common sudo add-apt-repository universe sudo apt update
Exécutez cette commande sur la ligne de commande sur la machine pour installer Certbot.
sudo apt install certbot python3-certbot-apache
5. Générer un certificat SSL Let's Encrypt gratuit
Il existe de nombreuses façons d'obtenir un certificat SSL avec Certbot. Nous utiliserons le plugin Apache, qui se chargera de reconfigurer le Virtual Host d'Apache et rechargera la nouvelle configuration pour nous. Vous pouvez exécuter la commande suivante pour utiliser le plugin :
sudo certbot --apache
À l'aide de ce script, vous devez répondre à une série de questions et fournir une adresse e-mail. Dans la première étape, vous devez saisir une adresse e-mail valide. L'adresse e-mail est requise pour les notifications et les avis de sécurité concernant le certificat de votre site Web :
Output: Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator apache, Installer apache Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): [email protected]
L'étape suivante consiste à confirmer que vous acceptez les conditions d'utilisation de Let's Encrypt. Si vous voulez confirmer, tapez simplement A puis appuyez sur [ENTER] :
Output: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server at https://acme-v02.api.letsencrypt.org/directory - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (A)gree/(C)ancel: A
Si vous souhaitez partager l'adresse e-mail fournie avec l'EFF (Electronic Frontier Foundation) pour recevoir des nouvelles et d'autres informations, vous pouvez taper Y. Si vous ne souhaitez pas recevoir ce type d'e-mail, vous pouvez taper N et soumettre votre réponse par tapant [ENTER].
Output: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: N
Vous devez maintenant sélectionner le domaine pour lequel vous souhaitez activer HTTPS. Les domaines et sous-domaines répertoriés dans votre invite de commande sont automatiquement obtenus à partir de la configuration de votre hôte virtuel Apache. Tapez les chiffres séparés par des virgules et/ou des espaces, ou si vous souhaitez activer HTTPS pour tous les domaines ou sous-domaines, vous pouvez laisser l'invite vide. Dans tous les cas, vous appuyez ensuite sur [ENTER] pour passer à l'étape suivante.
Output: Which names would you like to activate HTTPS for? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: domain.com 2: www.domain.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate numbers separated by commas and/or spaces, or leave input blank to select all options shown (Enter 'c' to cancel):
Le résultat ressemblera à ceci :
Output: Obtaining a new certificate Performing the following challenges: http-01 challenge for domain.com http-01 challenge for www.domain.com Waiting for verification... Cleaning up challenges Created an SSL vhost at /etc/apache2/sites-available/domain.com-le-ssl.conf Deploying Certificate to VirtualHost /etc/apache2/sites-available/domain.com-le-ssl.conf Enabling available site: /etc/apache2/sites-available/domain.com-le-ssl.conf
Certbot fournit la redirection HTTPS en tant qu'option que vous pouvez activer. Dans cette étape, le script vous demandera de sélectionner si vous souhaitez que l'intégralité du trafic HTTP soit redirigé vers HTTPS ou de conserver la configuration actuelle. Sélectionnez 1 si vous ne voulez pas de redirection ou 2 pour activer la redirection, puis appuyez sur [ENTER].
Output: Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Bon travail. Votre certificat SSL est maintenant installé et chargé dans la configuration Apache. Vous verrez une sortie semblable à la suivante :
Output: Redirecting vhost in /etc/apache2/sites-enabled/domain.com.conf to ssl vhost in /etc/apache2/sites-available/domain.com-le-ssl.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations! You have successfully enabled https://domain.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=domain.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/domain.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/domain.com/privkey.pem Your cert will expire on 2021-09-09. To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot renew" - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
Pour vérifier que votre nouveau certificat SSL est configuré correctement, visitez https://domain.com/
dans votre navigateur Web et recherchez l'icône de cadenas vert dans la barre d'URL. Vous pouvez également utiliser un site Web ou des outils externes pour vérifier si votre certificat SSL est correctement installé.
6. Vérification du renouvellement automatique de Certbot
Les certificats SSL fournis par Let's Encrypt ne sont valables que pendant 90 jours. Le Certbot que nous avons installé définira une tâche cron qui se chargera de renouveler tout certificat SSL dans les trente jours suivant son expiration. Pour vérifier l'état de ce service, vous pouvez exécuter la commande :
sudo systemctl status certbot.timer
Output: ● certbot.timer - Run certbot twice daily Loaded: loaded (/lib/systemd/system/certbot.timer; enabled; vendor preset: enabled) Active: active (waiting) since Thu 2021-06-11 11:33:00 UTC; 1h 37min ago Trigger: Thu 2021-06-11 15:52:01 UTC; 2h 41min left Triggers: ● certbot.service
ou vous pouvez lister toutes les minuteries avec :
sudo systemctl list-timers
Vous pouvez tester le renouvellement automatique de vos certificats en exécutant cette commande :
sudo certbot renew --dry-run
et la commande de renouvellement du certificat SSL se trouve à l'un des emplacements suivants :
/etc/crontab/ /etc/cron.*/*
Toutes nos félicitations! Vous avez installé avec succès un certificat SSL Let's Encrypt gratuit pour votre domaine.
Dans cet article, nous vous avons montré comment installer le serveur web Apache2 et Certbot, ainsi que comment créer un Apache Virtual Host, et bien sûr, installer un certificat SSL pour votre domaine. Votre site Web devrait maintenant être sécurisé et se renouveler automatiquement pour le rester.
Bien sûr, si vous êtes l'un de nos clients d'hébergement Ubuntu géré, vous n'avez pas à installer vous-même un certificat SSL Let's Encrypt pour votre domaine - demandez simplement à nos administrateurs, asseyez-vous et détendez-vous. Nos administrateurs installeront immédiatement pour vous un certificat SSL Let's Encrypt sur votre VPS Ubuntu 20.04, ainsi que de nombreuses optimisations utiles que nous pouvons effectuer pour vous.
Si vous avez aimé cet article sur l'installation de Let's Encrypt sur Ubuntu 20.04 avec Apache, partagez-le avec vos amis sur les réseaux sociaux à l'aide des boutons de partage ci-dessous, ou laissez simplement un commentaire dans la section des commentaires. Merci.