Procédure pour ajouter un certificat SSL sur pound (frontal de la chaîne AFPv2) sur la VM xanthe.gorgu.net
Sur Xanthe, serveur frontal de la chaîne AFPv2, c'est le serveur frontal pound qui écoute sur les ports 80 (HTTP) et 443 (HTTPS), sur plusieurs IPs :
176.31.138.112 : HTTP et HTTPS
176.31.138.113 : HTTP redirect vers HTTPS (IP dédiée à forum-am.fr)
176.31.138.115 : HTTP
176.31.138.121 : HTTP redirect vers HTTPS
176.31.138.122 : HTTP redirect vers HTTPS (IP dédiée à ampedia)
Se fier au DNS pour repérer sur quelle(s) IP(s) intervenir.
Attention
pound sait faire du SNI (plusieurs certificat par adresse IP) mais pas du SAN (plusieurs hostname fqdn attachés au certificat) : donc si besoin d'utiliser un certificat multiple SAN, il faut dédier une IP et créer les ports d'écoute sur pound
Etape 1 : Connexion
Se connecter en root sur xanthe.gorgu.net
Etape 2 : Copier le certificat complet au format .pem
Il faut tout d'abord s'assurer d'avoir le certificat à ajouter au format .pem et au complet :
- Contenu de la clé privée
- (falcutatif) Contenu de la / ou des clé(s) intermédiaire
- Contenu de la clé public (le certificat délivré ou autosigné)
Pour plus d'information sur les fichiers .pem : http://how2ssl.com/articles/working_with_pem_files/
Ensuite copier le fichier .pem dans le répertoire de pound
Pound est chrooté, le répertoire est le suivant :
cp FILENAME.pem /var/chroot/pound/etc/
Etape 3 : cas 1 : Ajouter le certificat sur le port d'écoute HTTPS de l'IP
Editer le fichier de config de pound :
nano /etc/pound/pound.cfg
Puis ajouter la directive "Cert" comme sur l'exemple suivant à la ligne 5 avec l'ajout du certificat "forum-am.fr.pem" pour le port HTTPS de l'IP 172.31.138.112 :
ListenHTTPS ## cerificate for *.gadz.org Address 176.31.138.112 Port 443 Cert "/var/chroot/pound/etc/forum-am.fr.pem" Cert "/var/chroot/pound/etc/gadz.org.pem" CAList "/var/chroot/pound/etc/RapidSSLCa.pem" AddHeader "X-Forwarded-Proto: https" AddHeader "X-Forwarded-Port: 443" xHTTP 1 DisableSSLv3 DisableSSLv2 End
Ordre des certificats
Si un site ne correspond à aucune entrée FQDN renseignée dans les informations des différents certificats, alors le trafic sera chiffré à l'aide du premier certificat de la liste (ce qui peut engendrer des erreurs de certificat côté client).
Etape 3 : cas 2 : Ajouter une IP virtuelle / Créer un port d'écoute dédié / Ajouter le certificat sur le port d'écoute HTTPS de l'IP
Il faut dans ce cas :
1- Ajouter une IP virtuelle aux interfaces sur /etc/network/interfaces
2- Créer un port d'écoute (en se basant sur ceux déjà existants) sur /etc/pound/pound.cfg
3- Reproduire l'étape 3 cas 1 sur le nouveau port d'écoute de la nouvelle IP
Ne pas oublier de mettre à jour le SVN avec les modifications effectuées !!
Etape 4 : Redémarrer le service pound
Effectuer un stop puis start du service, ou bien utiliser la cmd force-reload :
service pound force-reload
Et vérifier le statut :
service pound status