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é.
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 |
aptitude update aptitude install python-certbot-apache -t jessie-backports |
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 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 |
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
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
Ajouter à la fin du fichier de config du module ssl les directives suivantes :
SSLUseStapling on SSLStaplingCache "shmcb:logs/stapling-cache(150000)" |
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
certbot-auto --rsa-key-size 4096 renew |
(ou certbot tout court au lieu de certbot-auto selon l'install)
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] |