GNU/Linux >> Tutoriels Linux >  >> Panels >> Panels

Comment installer Let's Encrypt sur Ubuntu 20.04 avec Apache

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.


Panels
  1. Comment installer Apache sur Ubuntu 18.04

  2. Comment installer Apache sur Ubuntu 20.04

  3. Comment installer Elgg avec Nginx sur Ubuntu 14.04

  4. Comment installer Let's Encrypt SSL sur Ubuntu 18.04 avec Nginx

  5. Comment installer Joomla avec Nginx sur Ubuntu 18.04

Comment installer Let's Encrypt SSL sur Ubuntu avec Apache

Comment installer Nginx avec Let's Encrypt SSL sur Ubuntu 20.04 LTS

Comment installer Apache avec Let's Encrypt SSL sur Ubuntu 20.04 LTS

Comment installer Apache Tomcat 10 sur Ubuntu 20.04 avec Nginx

Comment installer Apache Tomcat 10 sur Ubuntu 22.04 avec Nginx

Comment installer Apache sur Ubuntu 22.04