Allez hop, on continue cette fois-ci avec nos serveurs que l’on souhaite accessibles en https.
On va sécuriser la lien entre notre HAproxy et les serveurs de nos backends.
Installer le package certbot (https://certbot.eff.org/#debianjessie-haproxy)
Pour Debian 8 Jessie, nous devons ajouter le dépôt des backports en ajoutant la ligne suivante à notre fichier « /etc/apt/sources.list »
deb http://httpredir.debian.org/debian jessie-backports main contrib non-free
Avant de pouvoir installer certbot.
apt-get update apt-get install certbot -t jessie-backports
Obtenir notre certificat
A la racine de notre site web (Exemple: « /var/www/thierry.bugeat.com »), nous créons un dossier « .well-known ». Le serveur web doit être configuré pour accepter toutes les requêtes à destination de ce dossier.
Nous pouvons maintenant demander un certificat pour notre nom de domaine « thierry.bugeat.com »…
certbot certonly --webroot -w /var/www/thierry.bugeat.com/ -d thierry.bugeat.com
Vous devez saisir un email…
…puis accepter les termes et conditions.
Si tout s’est bien déroulé, le message suivant s’affiche et votre certificat se trouve maintenant dans le dossier « /etc/letsencrypt/archive/thierry.bugeat.com »
IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at /etc/letsencrypt/live/XXXXXXXXXX/fullchain.pem. Your cert will expire on 2017-06-05. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - If you lose your account credentials, you can recover through e-mails sent to XXXXXXXXXX@XXXXXXXXXX. - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
NB: Vou pouvez demander autant de certificats SSL que de noms de domaines.
... certbot certonly --webroot -w /var/www/wallabag/web/ -d wallabag.bugeat.com ...
Activation de SSL sur Haproxy:
Préparons nos certificats pour qu’ils puissent être utilisés par Haproxy.
cd /etc/letsencrypt/archive/thierry.bugeat.com && cat cert1.pem privkey1.pem > haproxy.pem cd /etc/letsencrypt/archive/wallabag.bugeat.com && cat cert1.pem privkey1.pem > haproxy.pem
Nous pouvons maintenant les utiliser de la façon suivante
... ... ... # ============= # --- HTTPS --- # ============= frontend FRONTEND_HTTPS mode http bind 0.0.0.0:443 \ ssl \ crt /etc/letsencrypt/archive/thierry.bugeat.com/haproxy.pem \ crt /etc/letsencrypt/archive/wallabag.bugeat.com/haproxy.pem use_backend BACKEND_HTTP1 if { ssl_fc_sni thierry.bugeat.com } use_backend BACKEND_HTTP1 if { ssl_fc_sni wallabag.bugeat.com } ... ... ...
Veuillez noter que les backends utilisés sont les mêmes que pour le HTTP. Nul besoin d’en créer des nouveaux.
Après avoir relancé Haproxy, vous pouvez vous rendre sur votre site en https et constater que la connexion est sécurisé.
Let’s encrypt… mission réussie.