GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment sécuriser votre site Web avec Let's Encrypt sur Ubuntu 20.04

Chiffrons est une autorité de certification (CA) à but non lucratif qui fournit un certificat SSL/TLS gratuit. Let's Encrypt vous permet d'installer ou de demander un certificat SSL gratuitement. Le certificat SSL/TLS de Let's Encrypt a une validité de 90 jours et vous pouvez le renouveler à tout moment gratuitement.

Dans ce didacticiel, nous utiliserons Certbot pour demander ou obtenir un certificat SSL gratuit auprès de Let's Encrypt.

Certbot est un client Let's Encrypt qui gère les certificats SSL Let's Encrypt. Un client Let's Encrypt complet qui peut automatiser les tâches, l'obtention et le renouvellement des certificats SSL.

Passons aux étapes de sécurisation de notre site Web avec Let's Encrypt.

1 Prérequis

Le certificat Let’s Encrypt SSL/TLS ne peut être installé que sur un serveur avec un nom de domaine enregistré. Vous devez vous assurer que votre enregistrement de domaine A pointe vers votre serveur car Let's Encrypt doit valider le domaine s'il pointe correctement vers le serveur sur lequel vous demandez à obtenir le certificat SSL.

2 Installation de Certbot

Dans cette section, nous vous expliquerons comment installer Certbot avec Apache et Nginx Webserver.

Pour le serveur Web Apache.

sudo apt install certbot python3-certbot-apache

Pour le serveur Web Nginx.

sudo apt install certbot python3-certbot-nginx

3 Génération du certificat SSL

Pour le serveur Web Apache.

 sudo certbot --apache

Après avoir lancé la commande, suivez les instructions ci-dessous.

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]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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: Y
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): 1,2

Nous avons sélectionné 1 et 2 pour que le sous-domaine www soit inclus dans les certificats SSL.

Remarque  :Vous pouvez choisir si vous ne souhaitez pas inclure le sous-domaine www, sélectionnez simplement 1 et appuyez sur Entrée.

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
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 2022-03-05. 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 le serveur Web Nginx.

sudo  certbot --nginx
OUTPUT:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
 (Enter 'c' to cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, 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: Y
Account registered.

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): 1,2
Requesting a certificate for domain.com

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/domain.com/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/domain.com/privkey.pem
This certificate expires on 2022-07-28.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.

Deploying certificate
Successfully deployed certificate for domain.com to /etc/nginx/sites-enabled/domain.com.conf
Congratulations! You have successfully enabled HTTPS on https://domain.com

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

C'est tout, félicitations !

4 Tester le certificat SSL

Après l'installation, vous pouvez vérifier si le certificat SSL est installé sur votre site Web en y accédant simplement avec https://domain.com. Vous pouvez également le vérifier en utilisant un site Web SSL Checker comme https://www.sslshopper.com/ssl-checker.html.

5 Renouvellement du certificat SSL

Lorsque vous installez Certbot il configurera automatiquement un script de renouvellement automatique puisque Let's Encrypt n'est valable que dans les 90 jours ou 3 mois. Pour vérifier si le script de renouvellement automatique est en cours d'exécution, exécutez cette commande.

systemctl status certbot.timer
● certbot.timer - Run certbot twice daily
     Loaded: loaded (/lib/systemd/system/certbot.timer; enabled; vendor preset: enabled)
     Active: active (waiting) since Sun 2021-12-05 13:33:10 EST; 45min ago
    Trigger: Mon 2021-12-06 00:10:45 EST; 9h left
   Triggers: ● certbot.service

Dec 05 13:33:10 domain.com systemd[1]: Started Run certbot twice daily.

Le certbot le minuteur s'exécutera deux fois par jour pour vérifier s'il y a des domaines prêts à être renouvelés.

Il existe des cas où le minuteur Certbot ne parvient pas à renouveler les domaines à temps, ce qui entraîne l'expiration des certificats. Dans ce cas, vous pouvez renouveler manuellement les domaines en exécutant cette commande.

sudo certbot renew

Vous pouvez également effectuer un test de renouvellement pour tester si le renouvellement SSL fonctionne comme prévu. Pour ce faire, exécutez cette commande.

sudo certbot renew --dry-run

6 Conclusion

Nous avons démontré comment sécuriser nos sites à l'aide du certificat SSL Let's Encrypt. Dans ce didacticiel, vous avez également appris à utiliser Certbot pour renouveler et obtenir un certificat SSL Let's Encrypt gratuit.

Si vous souhaitez en savoir plus sur la façon de sécuriser votre serveur, vous pouvez consulter le didacticiel fail2ban.


Ubuntu
  1. Chiffrez vos données avec EncFS sur Ubuntu 15.10

  2. Sécuriser Nginx avec Let's Encrypt sur Ubuntu 18.04 - Comment faire ?

  3. Comment sécuriser Nginx avec Letsencrypt sur Ubuntu 20.04

  4. Comment configurer Let's Encrypt (Certbot) sur Ubuntu 20.04

  5. Comment sécuriser Apache avec Lets Encrypt sur Ubuntu 18.04

Comment installer Nginx avec Let's Encrypt TLS/SSL sur Ubuntu 20.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 sécuriser Nginx avec Let's Encrypt sur Ubuntu 20.04

Comment sécuriser Apache avec Let's Encrypt sur Ubuntu 20.04