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

De Get Docs
Aller à :navigation, rechercher

Introduction

Ce tutoriel vous montrera comment configurer un certificat TLS/SSL à partir de Let's Encrypt sur un serveur Ubuntu 16.04 exécutant Apache en tant que serveur Web.

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

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

Étape 1 - Installez le client Let's Encrypt

Les certificats Let's Encrypt sont récupérés via un logiciel client exécuté sur votre serveur. Le client officiel s'appelle Certbot et ses développeurs maintiennent leur propre référentiel de logiciels Ubuntu avec des versions à jour. Étant donné que Certbot est en développement si actif, il vaut la peine d'utiliser ce référentiel pour installer une version plus récente que celle fournie par défaut par Ubuntu.

Tout d'abord, ajoutez le dépôt :

sudo add-apt-repository ppa:certbot/certbot

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

sudo apt-get update

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

sudo apt-get install python-certbot-apache

Le client certbot Let's Encrypt est maintenant prêt à être utilisé.

Étape 2 - Configurer le certificat SSL

La génération du certificat SSL pour Apache à l'aide de Certbot est assez simple. Le client obtiendra et installera automatiquement un nouveau certificat SSL valide pour les domaines fournis en paramètres.

Pour exécuter l'installation interactive et obtenir un certificat qui ne couvre qu'un seul domaine, exécutez la commande certbot comme ceci, où example.com est votre domaine :

sudo certbot --apache -d example.com

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

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

Pour cet exemple, le domaine base sera example.com.

Si vous avez plusieurs hôtes virtuels, vous devez exécuter certbot une fois pour chacun afin de générer un nouveau certificat pour chacun. Vous pouvez répartir plusieurs domaines et sous-domaines sur vos hôtes virtuels de n'importe quelle manière.

Une fois les dépendances installées, un guide étape par étape vous sera présenté pour personnaliser les options de votre certificat. Il vous sera demandé de fournir une adresse e-mail pour la récupération de clé perdue et les avis, et vous pourrez choisir entre activer à la fois l'accès http et https ou forcer toutes les demandes à rediriger vers https. Il est généralement plus sûr d'exiger https, sauf si vous avez un besoin spécifique de trafic http non chiffré.

Une fois l'installation terminée, vous devriez pouvoir trouver les fichiers de certificat générés sur /etc/letsencrypt/live. Vous pouvez vérifier l'état de votre certificat SSL avec le lien suivant (n'oubliez pas de remplacer example.com par votre domaine base) :

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

Vous devriez maintenant pouvoir accéder à votre site Web en utilisant un préfixe https.

Étape 3 - Vérification du renouvellement automatique de Certbot

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

Pour tester le processus de renouvellement, vous pouvez faire un essai avec certbot :

sudo certbot renew --dry-run

Si vous ne voyez aucune erreur, vous êtes prêt. Si nécessaire, Certbot renouvellera vos certificats et rechargera Apache pour prendre en compte les modifications. Si le processus de renouvellement automatisé échoue, Let's Encrypt enverra un message à l'e-mail que vous avez spécifié, vous avertissant lorsque votre certificat est sur le point d'expirer.

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 consulter le blog Let's Encrypt officiel pour des mises à jour importantes de temps à autre, et de lire la documentation Certbot pour plus de détails sur le client Certbot.