Installer un certificat SSL gratuit Let's Encrypt sur Apache 2.4 et Debian 8 en moins de 10 minutes


Let's Encrypt fournit gratuitement des certificat SSL, valide 3 mois qui se renouvellent automatiquement.

Nous allons voir comment installer le certificat via le client certbot recommandé par l'EFF, puis ensuite obtenir le meilleur niveau de sécurité.

Installer le certificat - Debian 8

Etape 1 : Ajouter les dépôts pour Debian 8 (Jessie)

Les paquets pour Debian 8 se trouve dans les backports

Créer un fichier source et renseigner le dépôt :

nano /etc/apt/sources.list.d/backports.list
deb http://ftp.us.debian.org/debian/ jessie-backports main

Etape 2 : Installer le client Certbot

aptitude update
aptitude install python-certbot-apache -t jessie-backports

Etape 3 : Exécuter le client

certbot --apache

Suivre les indication de l'assistant. Si le vhost (HTTP) Apache est bien configuré, l'assistant va le trouver et s'occuper automatiquement de la configuration.

Vous pouvez choisir entre laisser le site accessible en HTTP et en parallèle HTTPS, ou bien rediriger l'HTTP vers la version HTTPS

Il suffit ensuite de redémarrer apache via "service apache2 restart" pour que le site soit accessible en HTTPS (à condition que le firewall de la machine le permette).

Installer le certificat - Debian 10/11

Etape 1 : Installer le client Certbot selon le site officiel https://certbot.eff.org/

installer snapd, puis installer le core (et vérifier qu'il est à jour) , puis installer certbot et créer un lien symbolique

apt update && apt install snapd
snap install core; snap refresh core
snap install --classic certbot
ln -s /snap/bin/certbot /usr/bin/certbot

Etape 2 : Exécuter le client avec une RSA de 4096bits

certbot --apache --rsa-key-size 4096

Les vhost HTTP apache sont automatiquement détecté et proposé. Confirmer. Le(s) certificat(s) sont automatiquement générés/récupérés/installé, le(s) vhost Apache HTTPS créé(s) et les vhost http redirigé(s) vers https, et la config Apache est reloadée dans la foulée



Bon à savoir

Conseil : tester le renouvellement

On peut simuler un renouvellement pour être certain qu'il fonctionnera correctement (le service crée automatiquement une tâche cron pour cela) :

certbot renew --dry-run



Par défaut, le niveau de chiffrement est correct ; SSLv2 et v3 désactivé, suite de ciphers robuste, Foward Secrecy activé, SSL compression off...

On obtiens (à conditions d'avoir une installation Apache et Openssl à jour : 2.4.10 dans cet exemple) une note de A sur ssllabs.com

On peut néanmoins renforcer un peu plus la sécurité en effectuant quelques manipulations simples

Renforcer la sécurité et obtenir la note maximal (A+) sur ssllabs.com


Activer l'OCSP stappling

Ajouter à la fin du fichier de config du module ssl les directives suivantes :

/etc/apache2/mods-enabled/ssl.conf
SSLUseStapling on
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"

Activer le Strict Transport Security (HSTS)

Ajouter dans le fichier de config de Let's Encrypt les directives suivantes :

/etc/letsencrypt/options-ssl-apache.conf
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff


Après avoir redémarré Apache, on devrait obtenir la note de A+ sur le test de ssllabs.com


Renouveler un certificat existant


certbot-auto --rsa-key-size 4096 renew

(ou certbot tout court au lieu de certbot-auto selon l'install)

Mettre à jour l'email / contact


certbot update_account --email [email protected]

ou 

certbot-auto register --update-registration --email [email protected]

ou

certbot register --update-registration --email [email protected]

ou

certbot update_account --email [email protected]
  • Aucune étiquette