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.