The Longest Line

Le chemin le plus long...

Sécuriser Apache avec Let's Encrypt

Rédigé par andy / 16 décembre 2016 / 2 commentaires

En cette soirée de début de vacances scolaire un peu de flemme, alors je recycle une traduction que j'avais faite pour mon blog précédent... Il m'est encore utile au moment où je vous parle, même si j'utilise pas mal cerbot aussi.

C'est donc un super outil à mettre en place sur vos VM, serveurs, etc.

Bonne utilisation à tous

Page créée et traduite depuis le merveilleux article de Digital Ocean [1]

Vous aurez besoin de :

Serveur Ubuntu ou Debian based avec droits root. Apache2 installé et configuré.

Step 1 — Installer les dépendances serveur :

sudo apt-get update

Installer Git, pour cloner Github :

sudo apt-get install git


Step 2 — Installer Let's Encrypt

On clone le repository de Let’s Encrypt dans /opt, qui est le dossier standart des logiciels tiers de Unix :

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

Ceci va créer une copie locale du repository officiel de Let's Encrypt dans /opt/letsencrypt


Step 3 — Installer le certificat SSL :

Générer un certificat SSL pour Apache en utilisant Let's Encrypt est assez simple. Le client va automatiquement obtenir et installer un nouveau certificat SSL qui sera valide pour le nom de domaine paramétré.

Aller dans le dossier :

cd /opt/letsencrypt

Pour exécuter l'installation interactive et obtenir un certificat qui couvre UN SEUL domaine, exécutez la commande suivante:

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

Pour le faire sur plusieurs domaine, exécuter la commande suivante (nous vous recommandons d'utiliser en premier lieu, le nom de domaine principale dans la liste) :

./letsencrypt-auto --apache -d nom_de_votre_domaine.com -d www.nome_de_votre_domaine.com

pour cet exemple, le nom de domaine de base sera : nom_de_votre_domaine.com.

Après l'installation des dépendances, vous allez être devant un guide "spas-à-pas". On vous demandera de donner une adresse email pour la récupération des clefs perdues, et vous pourrez aussi choisir d'activer http également ou de forcer les redirections vers le https.

Quand l'installation est terminée, vous pourrez trouver trouver le certificat généré dans /etc/letsencrypt/live. Vous pouvez vérifier le statut de votre certificat SSL avec le lien suivant :

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

Votre certificat SSL par Let's Encrypt est prêt et fonctionnel !


Step 4 — Installer un renouvellement automatique.

Let's Encrypt offre des certificats valides pour 90 jours, mais nous vous recommandons de le renouveller tous les 60 jours, pour vous laisser une marge d'erreur.Le client Let's Encrypt a une commande qui permet de vérifier automatiquement les certificats installés et tente de les renouveler si elles sont à moins de 30 jours de la date d'expiration .

Pour déclencher le processus de renouvellement, vous devez exécuter :

./letsencrypt-auto renew

Puisque vous venez d'installer le certificat, la commande va simplement vérifier la date d'expiration et donner en sortie un message vous informant que le certificat est pas en passe d'être automatiquement renouvelé, la sortie devrait être comme ceci :

Checking for new version...
<code>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.

Notez que si vous avez créé un certificat en pack pour plusieurs domaines, c’est le nom de domaine de base qui sera donné dans la sortie, mais le renouvellement devrait être fait pour tous.

Une façon pratique de vous assurer que votre certificat ne sera pas dépassé est de créer un cron d'autorenouvellement qui exécutera périodiquement la commande. Il s'activera depuis le premier check du certificat et s'exécutera automatiquement à moins de 30 jours de la date d'expiration, (tous les jours ou toutes les semaines).

Éditons la tab cron pour créer une nouvelle commande récurrent de renouvellement. Pour éditez, tapez :

sudo crontab -e

Ecrivez la ligne suivante en une seule ligne :

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

Sauvegarder et quitter. Save and exit. Cela va créer une nouvelle tâche cron qui exécutera le renouvellement automatique tous les lundis à 02h30 . La sortie des commandes faites sera enregistré dans les logs dans : /var/log/le-renewal.log.


Step 5 — (Optionnel) - Mettre à jour Let's Encrypt

Chaque fois que de nouvelles mises à jour sont disponibles pour le client, vous pouvez mettre à jour votre copie locale en exécutant un "git pull" à l'intérieur du répertoire Let's Encrypt :

cd /opt/letsencrypt

sudo git pull

Ceci va télécharger toutes les modifications récentes dans le dépôt et mettre à jour de votre client.

Conclusion

Puisque Let's Encrypt est encore en version Beta, nous vous conseillons de bien vérifier le blog de Let's Encrypt : [2]

2 commentaires

#1 mardi 27 décembre 2016 @ 14:34 Un lecteur assidu a dit :

Merci pour cet article bien rédigé qui va à l'essentiel sans fioriture.

Au plaisir de lire de nouveau article.

#2 mardi 27 décembre 2016 @ 19:03 andy a dit :

Salut et merci pour ton commentaire. C'est très agréable de lire ça.J'essaye en effet de mettre le sctrict minimum.Cela dit, pour un prochain tu to du genre, je pense même séparer les étamés en différents articles pour mieux cloisonner le tout.Est-ce que ça a marché chez toi ? C'est le principal !Merci encore.A bientôt.

Écrire un commentaire

Quelle est la troisième lettre du mot rouel ? :