Comment sécuriser Apache avec Let’s Encrypt sur Ubuntu 14.04

introduction

Ce tutoriel va vous montrer comment configurer un certificat TLS / SSL à partir deLet’s Encrypt sur un serveur Ubuntu 14.04 exécutant Apache en tant que serveur Web.

Les certificats SSL sont utilisés dans les serveurs Web pour chiffrer le trafic entre le serveur et le client, offrant ainsi une sécurité supplémentaire aux utilisateurs accédant à votre application. Let Encrypt offre un moyen simple d’obtenir et d’installer des certificats sécurisés gratuitement.

Conditions préalables

Pour compléter ce guide, vous aurez besoin de:

Lorsque vous êtes prêt à passer à autre chose, connectez-vous à votre serveur à l'aide de votre compte compatible sudo.

[[step-1 -—- download-the-let's-encrypt-client]] == Étape 1 - Téléchargez le client Let’s Encrypt

La première étape pour utiliser Let’s Encrypt pour obtenir un certificat SSL consiste à installer le logicielcertbot sur votre serveur. Les développeurs de Certbot gèrent leur propre référentiel de logiciels Ubuntu avec des versions à jour du logiciel. Étant donné le développement actif de Certbot, il est intéressant d’utiliser ce référentiel pour installer un Certbot plus récent que celui fourni par Ubuntu.

Tout d'abord, ajoutez le référentiel:

sudo add-apt-repository ppa:certbot/certbot

Vous devrez appuyer surENTER pour accepter. Ensuite, mettez à jour la liste des packages pour récupérer les informations de package du nouveau référentiel:

sudo apt-get update

Et enfin, installez Certbot à partir du nouveau référentiel avecapt-get:

sudo apt-get install python-certbot-apache

Le client Let’s Encrypt decertbot est maintenant prêt à être utilisé.

[[step-2 -—- set-up-the-ssl-certificate]] == Étape 2 - Configurer le certificat SSL

La génération du certificat SSL pour Apache à l’aide du client Let’s Encryptcertbot est assez simple. Le client obtiendra et installera automatiquement un nouveau certificat SSL valide pour les domaines fournis en tant que paramètres.

Pour exécuter l'installation interactive et obtenir un certificat qui ne couvre qu'un seul domaine, exécutez la commandecertbot avec:

sudo certbot --apache -d example.com

Si vous souhaitez installer un seul certificat valide pour plusieurs domaines ou sous-domaines, vous pouvez le transmettre en tant que paramètres supplémentaires à la commande. Le premier nom de domaine dans la liste des paramètres sera le domainebase utilisé par Let's Encrypt pour créer le certificat, et pour cette raison, nous vous recommandons de transmettre le nom de domaine de premier niveau nu en premier dans la liste, suivi par tout sous-domaine ou alias supplémentaire:

sudo certbot --apache -d example.com -d www.example.com

Pour cet exemple, le domainebase seraexample.com.

Vous serez invité à fournir une adresse e-mail pour la récupération de clé perdue et les notifications, et vous devrez accepter les conditions d'utilisation de Let’s Encrypt. Il vous sera ensuite demandé de choisir entre activer à la fois l'accès àhttp ethttps ou forcer toutes les requêtes à être redirigées vershttps.

Lorsque l'installation est terminée, vous devriez pouvoir trouver les fichiers de certificat générés à/etc/letsencrypt/live. Vous pouvez vérifier l'état de votre certificat SSL avec le lien suivant (n'oubliez pas de remplacerexample.com par votre domainebase):

https://www.ssllabs.com/ssltest/analyze.html?d=example.com&latest

Vous devriez maintenant pouvoir accéder à votre site Web en utilisant le préfixehttps.

[[step-3 -—- verifying-certbot-auto-renew]] == Étape 3 - Vérification du renouvellement automatique de Certbot

Les certificats Encrypt ne durent que 90 jours. Cependant, le package certbot que nous avons installé s'en charge pour nous en exécutantcertbot renew deux fois par jour via un timer systemd. Sur les distributions non-systemd, cette fonctionnalité est fournie par un script cron placé dans/etc/cron.d. La tâche est exécutée deux fois par jour et renouvelle tout certificat dans les trente jours suivant son expiration.

Pour tester le processus de renouvellement, vous pouvez effectuer un essai à sec aveccertbot:

sudo certbot renew --dry-run

Si vous ne voyez aucune erreur, vous êtes tous ensemble. Si nécessaire, Certbot renouvellera vos certificats et rechargera Apache pour prendre en compte les modifications. En cas d’échec du processus de renouvellement automatique, Let’s Encrypt enverra un message au courrier électronique que vous avez spécifié pour vous avertir de l’expiration de votre certificat.

Conclusion

Dans ce guide, nous avons vu comment installer un certificat SSL gratuit de Let’s Encrypt afin de sécuriser un site Web hébergé avec Apache. Nous vous recommandons de vérifier lesLet’s Encrypt blog officiels pour les mises à jour importantes de temps en temps, et de lirethe Certbot documentation pour plus de détails sur le client Certbot.