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
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).
Bon à savoir
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 :
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 :
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
Mettre à jour l'email / contact
certbot update_account --email [email protected]
or
certbot-auto register --update-registration --email [email protected]
or
certbot register --update-registration --email [email protected]
o
r
certbot update_account --email [email protected]