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

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

Introduction

Ce tutoriel vous montrera comment installer un certificat TLS/SSL de LEt's Encrypt sur un Ubuntu 10.04 qui utilise Apache. La méthode est très proche d'une distribution Debian.

Les certificats SSL permettent de certifier et sécuriser le traffic entre votre serveur et vos clients.

Pré-requis

  • Ubuntu 10.04
  • Apache installé et correctement configuré
  • un accès sudo sur le VPS

Etape 1 – dépendances

D'abord nous allons mettre à jour la cache du package manager :

sudo apt-get update

Nous aurons ensuite besoin de Git pour télécharger le client de Let's Encrypt

sudo apt-get install git  

Etape 2 – téléchargement

Maintenant nous allons télécharger le client Let's Encrypt depuis le repository officiel, et mettre ses fichiers au bon endroit sur notre serveur. Nous allons aussi faire en sorte de faciliter les futures mises à jour du client. Car Let's Encrypt reste un produit en bêta, des mises à jour fréquentes sont attendues.

Nous allons clone le repo Let's Encrypt sous /opt qui est le dossier standard pour les logiciel tiers sur les systèmes UNIX :

sudo git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt

Cela va créer une copie du repo Let's Encrypt au chemin /opt/letsencrypt.

Etape 3 – installation du certificat

Générer le certificat SSL pour Aache est assez direct avec LEt's Enrypt. Le client va automatiquement obtenir et installer un certificat valide pour les domaines fournis ne paramètre.

Accéder au dossier de Let's Encrypt :

cd /opt/letsencrypt

Pour éxécuter l'installation interactive et obtenir un certificat qui couvre un seul domaine, lancer :

./letsencrypt-auto --apache -d example.com

Pour installer un certificat valide pour plsuieurs domaines ou sous-domaines, il est possible de les fournir en paramètres. Le premier domaine de la liste sera le domaine de base utilisé par lEt's Enncrypt pour le certificat, donc nous vous conseillons de donner le domaine le plus haut niveau dont vous disposez (comme example.com):

./letsencrypt-auto --apache -d example.com -d www.example.com

Pour cet exemple, le domaine de base est example.com.

Une fois les dépendances installées, vous serez présenté à un guide étape par étape poru cutosmier votre certificat. Une fois le guide terminé, vous trouverez votre certificat a /etc/letsencrypt/live VOus pouvez vérfier l'état de votre certificat sur le lien (en mettant votre nom de domaine) :

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

Votre site devrait être accessible en HTTPS !

Etape 4 – renouvellement automatique

Les certificats Let's Encrypt sont valides 90 jours, mais il est recommandé de renouveler les certificats tous les 60 jours pour être large.

Le client Let's Encrypt a une commande renewqui check automatiquement la validité du certificat installé et tente de le renouveler si il est à moisn de 30 jours d'expirer.

letsencrypt-auto renew

Car nous venons d'installer le certificat, la commande va seulement checker la date d'expiration et nous prévenir qu'il n'y a rien a faire pour le moment.

Checking for new version...
Requesting root privileges to run letsencrypt...
/root/.local/share/letsencrypt/bin/letsencrypt renew
Processing /etc/letsencrypt/renewal/example.com.conf

The following certs are not due for renewal yet:
/etc/letsencrypt/live/example.com/fullchain.pem (skipped)
No renewals were attempted.

Remarquez que si vous avec créé un certificat groupé avec plsuieurs domaines, seul le domaine de base sera affiché, mais le renouvellement devrait être effectué pour tous les domaines.

Une façon pratique de s'assurer que votre certificat ne sera pas périmé est de créer une tâche cron. Puisque la commande vérifie d'abrod si il y a lieu de mettre à jour le certificat, créer une tâche qui s'éxécutera tous les jours ou toutes les semaines est sûr.

Pour éditer une cron pour le root user :

sudo crontab -e

Puis tout en une ligne :

crontab

30 2 * * 1 /opt/letsencrypt/letsencrypt-auto renew >> /var/log/le-renew.log

Sauvegardez et quittez. Voilà une tâche qui s'éxécutera tous les lundi a 2h30 du matin. La sortie de la commande sera placée dans un log à /var/log/le-renewal.log.

Etape 5 — Mettre à jour le client

Quand des mises à jour sont disponibles, vous pouvez mettre à jour via git pull :

cd /opt/letsencrypt
sudo git pull

Conclusion

Dans ce guide nous avons cu comment installer un certificat SSL gratuit de Let's Encrpyt sur un site hébergé en Apache. Puisque le client est toujours en bêta nosu vous conseillons de vérfier sur le blog de Let's Encrypt les mises à jours importantes !

Vous avez une question ou une suggestion ? N'hésitez pas à réagir dans les commentaires !