Utiliser un certificat Letsencrypt
Letsencrypt permet d'obtenir des certificats SSL DV gratuitement. Plus important que l'aspect gratuit, c'est l'automatisation qui est importante: une fois que c'est en place, les certificats seront renouvelés automatiquement par la suite (et heureusement, parce que les certificats signés par l'autorité de Letsencrypt sont valides seulement 90 jours)
Installation sur une iPasserelle
Pour installer le client:
yum install smeserver-letsencrypt-client
Il ne reste qu'à le configurer:
db configuration setprop Letsencrypt Uri prod
rm -f /home/e-smith/db/letsencrypt.sh/private_key.*
Par défaut, tous les domaines déclarés sur le serveur et tous les noms DNS attachés au domaine principal seront ajouté en tant que SubjectAltName dans le certificat. Il est possible d'en désélectionner quelques un
db domains setprop domaine.org Letsencrypt disabled db hosts wpad.domaine.net disabled signal-event letsencrypt-update
Domaines ProxyPass
Sans entrer dans les détails du fonctionnement du protocole ACME utilisé pour valider un nom de domaine, les serveurs de letsencrypt doivent pouvoir faire des requêtes sur /.well-known/acme-challenge
Pas de problème particulier pour les domaines classiques, mais pour les domaines qui font du ProxyPass, on peut avoir plusieurs cas de figure, et plusieurs réglages possibles, avec la prop ProxyPassACMEChallenges
- disabled les requêtes /.well-known/acme-challenge sont traitées par l'iPasserelle, et pas renvoyées vers le backend
- only seules les requêtes vers /.well-known/acme-challenge sont renvoyées vers le backend. Toutes les autres requêtes sont traitées par l'iPasserelle
- enabled tout est renvoyé vers le backend, y compris les requêtes vers /.well-known/acme-challenge
db domains setprop backup.domaine.net ProxyPassACMEChallenge enabled signal-event letsencrypt-update
Il y a un autre cas, un peu plus rare: quand un nom doit être valide pour 2 machines différentes. Exemple d'usage
- Une seule IP publique disponible
- Un serveur de sauvegarde interne faisant fonctionner BackupPC, accessible sur l'adresse https://backup.domaine.net
- Depuis l'extérieur, impossible de joindre directement cette interface (sauf à utiliser un VPN), on met donc en place un ProxyPass restreint (limité à certaines IP) pour accéder à l'interface de gestion des sauvegardes
Problème: le nom backup.domaine.net doit être valide pour l'iPasserelle et le serveur de sauvegardes. Il faut donc à la fois traiter les requêtes vers /.well-known/acme-challenge, et les renvoyer vers le backend. IL y a un réglage pour ça
db domains setprop backup.domaine.net ProxyPassACMEChallenges enabled db domains setprop backup.domaine.net ProxyPassACMEChallengesDisableOnRenew enabled signal-event letsencrypt-update
Avec ce réglage, en temps normal, les requêtes vers /.well-known/acme-challenge sont renvoyées vers le backend. Mais uniquement quand letsencrypt renouvelle ses certificats sur l'iPasserelle, elles sont traités en local