Comment configurer Let Encrypt Certificates pour plusieurs hôtes virtuels Apache sur Ubuntu 14.04

introduction

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

Ce tutoriel vous montrera comment configurer des certificats TLS / SSL à partir de Let’s Encrypt pour sécuriser plusieurs hôtes virtuels sur Apache, au sein d’un serveur Ubuntu 14.04.

Nous verrons également comment automatiser le processus de renouvellement des certificats à l’aide d’un travail cron.

Conditions préalables

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

Il est important que chaque hôte virtuel soit configuré dans son propre fichier de configuration, et que vous puissiez y accéder de manière externe via un navigateur. Pour un guide détaillé sur la manière de configurer correctement les hôtes virtuels Apache sur Ubuntu, veuillez consulter https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-ubuntu-16 -04 [ce lien].

Pour les besoins de ce guide, nous allons installer les certificats Let’s Encrypt pour les domaines + example.com + et + test.com +. Ceux-ci seront référencés tout au long du guide, mais vous devriez les remplacer par vos propres domaines tout en les suivant.

Lorsque vous êtes prêt à passer à autre chose, connectez-vous à votre serveur en utilisant votre compte 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 logiciel + certbot + 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 sur + ENTER 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

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

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

Bien qu’il soit possible de regrouper plusieurs certificats Let’s Encrypt ensemble, même lorsque les noms de domaine sont différents, il est recommandé de créer des certificats distincts pour des noms de domaine uniques. En règle générale, seuls les sous-domaines d’un domaine particulier doivent être regroupés.

Générer le premier certificat SSL

Nous allons commencer par configurer le certificat SSL pour le premier hôte virtuel, + example.com +.

Nous exécuterons l’installation interactive et obtiendrons un certificat groupé valide pour un domaine et un sous-domaine, à savoir + example.com + en tant que domaine de base et + www.example.com + en tant que sous-domaine. Vous pouvez inclure tout sous-domaine supplémentaire actuellement configuré dans votre configuration Apache en tant qu’hôtes virtuels ou alias.

Exécutez la commande + certbot + avec:

sudo certbot --apache -d  -d

Notez que le premier nom de domaine dans la liste de paramètres sera le domaine * base * utilisé par Let’s Encrypt pour créer le certificat. Pour cette raison, nous vous recommandons de transmettre le nom de domaine de premier niveau nu en premier dans la liste, suivi de par des sous-domaines ou alias supplémentaires.

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

Une fois les dépendances installées, un guide étape par étape vous permettra de personnaliser les options de votre certificat. Il vous sera demandé de fournir une adresse e-mail pour la récupération de clés perdues et les notifications, et vous pourrez choisir d’activer les accès + http + et + https + ou de forcer toutes les demandes à être redirigées vers + https +.

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

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

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

Générer le deuxième certificat SSL

La génération de certificats pour vos hôtes virtuels supplémentaires doit suivre le même processus que celui décrit à l’étape précédente.

Répétez la commande d’installation du certificat, avec le deuxième hôte virtuel à sécuriser avec Let’s Encrypt:

sudo certbot --apache -d  -d

Pour cet exemple, le domaine * base * sera + test.com +.

Encore une fois, vous pouvez vérifier l’état de votre certificat SSL avec le lien suivant (n’oubliez pas de le remplacer par votre domaine * base *):

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

Si vous souhaitez générer des certificats pour des hôtes virtuels supplémentaires, répétez simplement le processus et n’oubliez pas d’utiliser le domaine de premier niveau nu en tant que domaine * base *.

Étape 3 - Configuration du renouvellement automatique

Les certificats de Let Encrypt ne sont valables que quatre-vingt-dix jours. Cela encourage les utilisateurs à automatiser leur processus de renouvellement des certificats. Nous devons définir une commande d’exécution régulière pour vérifier l’expiration des certificats et les renouveler automatiquement.

Pour exécuter la vérification de renouvellement quotidiennement, nous utiliserons + cron +, un service système standard permettant d’exécuter des travaux périodiques. Nous disons + cron + que faire en ouvrant et en modifiant un fichier appelé + crontab +.

sudo crontab -e

Votre éditeur de texte ouvrira la crontab par défaut, qui est un fichier texte contenant du texte d’aide. Collez la ligne suivante à la fin du fichier, puis enregistrez et fermez-le:

crontab

. . .
15 3 * * * /usr/bin/certbot renew --quiet

La partie `+15 3 * * * + 'de cette ligne signifie« exécutez la commande suivante à 3 h 15, tous les jours ». Vous pouvez choisir n’importe quel moment.

La commande + renew + pour Certbot vérifie tous les certificats installés sur le système et met à jour ceux qui sont définis pour expirer dans moins de trente jours. + - quiet + indique à Certbot de ne pas générer d’informations ni d’attendre les entrées de l’utilisateur.

+ cron + exécutera maintenant cette commande quotidiennement. Comme nous avons installé nos certificats à l’aide du plugin + - apache +, Apache sera également rechargé pour garantir l’utilisation des nouveaux certificats.

Conclusion

Dans ce guide, nous avons vu comment installer des certificats SSL gratuits de Let’s Encrypt afin de sécuriser plusieurs hôtes virtuels sur Apache. Nous vous recommandons de consulter le site officiel Let’s Encrypt pour des mises à jour importantes de temps à autre.