Certificat SSL
Présentation
Documentation pour la mise en place de certificat SSL pour votre serveur disposant de Haproxy, si vous n'avez pas de reverse proxy il faut passer par la doc https://doc.kokiris.com/Apache#lets-encrypt
Haproxy est en charge de
- la terminaison SSL ;
- du HTTP/2 ;
- de la sécurité des connexions ;
- du routage évolué.
Rôle | Répartiteur de charge |
---|---|
Gestion des certificats Let’s Encrypt ou custom sur architecture Multi | Une sonde vérifie que le service répond ainsi que les backends |
Privilège super-utilisateur | reload/restart via synchroGS |
Certificat payant
Les certificats SSL doivent être déposés dans le dossier /home/admin{custcode}/ssl/hap/
sous la forme d’un fichier conteneur certificat.pem
. Attention le fichier {certificat}.pem
doit être la concaténation du certificat de votre domaine, du certificat intermédiaire et de la clef privée.
Gratuit avec Let’s encrypt
Avant execution du script ci-dessous, il est impératif de vérifier que le domaine pointe bien sur l’adresse ip serveur ou bien celle du loadbalancer.
Règles
Création avec haple.sh
!!! Attention !!! par robustesse, choisissez de multiplier les certificats plutôt que d’ajouter pleins de domaines à un seul et unique certificat, car en cas d’anomalie de renouvellement sur un des domaines, le certificat entier ne serait pas renouvelé.
Exemple de création d’un certificat avec le script /usr/local/bin/haple.sh
par l’utilisateur admin :
sudo /usr/local/bin/haple.sh create email@mondomaine.com www.mondomaine.org
Déploiement de certificats classiques avec haple.sh
Dans l'exemple ci-dessous, la commande utilise les 3 fichiers nécessaires pour le déploiement d'un certificat classique.
Les permissions sur les fichiers doivent être restreintes, par exemple chmod 600 *.key *.crt
.
sudo /usr/local/bin/haple.sh loadcertificate mondomaine.org /home/ab123/ssl/mondomaine.org.key /home/ab123/ssl/mondomaine.org.crt /home/ab123/ssl/mondomaine.org-intermmediate.crt
Tester sans limites la création de certificat avec haple.sh
Il existe un nombre maximum d'essaie en cas d'erreur pour la génération de certificat avec Let's Encrypt, le nombre d'essaie se limite à 5 avant d'être banni 1h une première fois ainsi que d'autres limitations
Pour tester la validité de son domaine sans avoir à risquer de se faire bannir, il est possible d'utiliser l'argument test
suivi du nom de domaine :
sudo /usr/local/bin/haple.sh test mondomaine.com
Renouvellement avec haple.sh
Vous n’aurez jamais besoin de lancer le renouvellement mais voici la commande
sudo /usr/local/bin/haple.sh renew
Planifier le renouvellement avec cron avec haple.sh
Vous devez ajouter cette commande dans votre crontab pour que le renouvellement se fasse automatiquement.
Exemple
0 2 * * 1,5 sudo /usr/local/bin/haple.sh renew > /dev/null
Dans l’exemple ci-dessus, à deux heures du matin, chaque semaine, les lundi et vendredi, une tâche de renouvellement sera lancée.
Suppression manuelle de certificat classique ou let's encrypt
sudo certbot --config-dir=ssl/ delete --cert-name toto.com
puis synchronisation avec le slave
sudo synchroGS -r haproxy