Procédure pour mettre à jour le certificat SSL du LDAP SI sur HYGIE
Etape 1 : Connexion et chemin
Se connecter en root sur hygie.gorgu.net
Se rendre dans le répertoire /mnt/ldapsi-master/config
Etape 2 : Génération du certificat de l'autorité
Génération de la nouvelle clé privée pour le nouveau certificat de l'autorité de certification (autosigné).
openssl genrsa 4096 -sah256 > ca2016.pem
Ensuite, à partir de cette clé privée, nous allons générer un certificat d'autorité de certification (valide 100 ans) qui nous permettra de signer les certificats serveurs créés.
openssl req -new -x509 -days 36500 -key ca2016.pem > cacert2016.pem
Remplir le formulaire selon les champs suivants :
You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:FR State or Province Name (full name) [Some-State]: Locality Name (eg, city) []: Organization Name (eg, company) [Internet Widgits Pty Ltd]:GADZ Organizational Unit Name (eg, section) []: Common Name (e.g. server FQDN or YOUR name) []:cacert Email Address []:
Etape 3 : Certificat serveur : Génération clé privée, requête de demande, puis certificat
Générer la nouvelle clé privée :
openssl genrsa 4096 -sha256 > ldap.gadz.org_slapd_key2016.pem
Générer la demande CSR :
openssl req -new -key ldap.gadz.org_slapd_key2016.pem > ldap.gadz.org_slapd_cert2016.csr
Remplir le fomulaire avec les champs demandés. Celui principal est le common name : il doit se nommer comme la config de l'instance : ldap.gadz.org
Country Name (2 letter code) [AU]:FR State or Province Name (full name) [Some-State]:Paris Locality Name (eg, city) []:Paris Organization Name (eg, company) [Internet Widgits Pty Ltd]:Arts et Metiers Allumni Organizational Unit Name (eg, section) []:Gadz.org Common Name (e.g. server FQDN or YOUR name) []:ldap.gadz.org Email Address []:[email protected] Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:
Générer le certificat (valide 10 ans) selon la demande CSR et la clé privée :
openssl x509 -req -days 3650 -in ldap.gadz.org_slapd_cert2016.csr -out ldap.gadz.org_slapd_cert2016.pem -CA cacert2016.pem -CAkey ca2016.pem -CAcreateserial -CAserial ca2016.srl
Etape 4 : Archiver et remplacer les anciennes clés
Déplacer et remplacer les anciennes clés :
mv ldap.gadz.org_slapd_key.pem certificats_old/ mv ldap.gadz.org_slapd_cert.pem certificats_old/ mv cacert.pem certificat_old/ mv ldap.gadz.org_slapd_key2016.pem ldap.gadz.org_slapd_key.pem mv ldap.gadz.org_slapd_cert2016.pem ldap.gadz.org_slapd_cert.pem mv cacert2016.pem cacert.pem cp cacert.pem /etc/ldap/ mv ldap.gadz.org_slapd_cert2016.csr certificats_2016/ cp ldap.gadz.org_slapd* certificats_2016/ mv ca2016* certificats_2016/
Etape 5 :
Il faut remplacer le fichier ci-dessous sur chaque serveur : /etc/ldap/cacert.pem par le nouveau fichier généré (celui valide durant 100 ans)
Commencer par remplacer le certificat sur le serveur Puppet Master : toutatis . Les serveurs étant sur Puppet et ayant l'agent lancé seront automatiquement mis à jour.
Le fichier a remplacer sur la config Puppet est :
/etc/puppet/environment/production/modules/ldapclient/file/cacert.pem
Ne pas oublier de le pusher sur Git.
Ensuite, faire manuellement la modification (pour les serveurs non orchestrés via Puppet) ;
Conseil : copier le fichier cacert.pem sur votre /home/
Pour les serveurs étant liés au LDAP SI (cat /etc/ldap/ldap.conf et vérifier qu'ils sont linké à ldap.gadz.org) et ayant le point de montage NFS /home monté depuis Toutatis :
cp /home/arcadio/cacert.pem /etc/ldap/
Pour les serveurs étant liés au LDAP SI mais n'ayant pas le point de montage NFS /home monté depuis Toutatis :
scp arcadio@toutatis:/home/arcadio/cacert.pem /etc/ldap/
Remplacer toutatis par le fqdn toutatis.gorgu.net ou l'ip 172.16.1.2 si problèmes DNS ou key ssh
On peut vérifier la validité du certificat via :
openssl x509 -enddate -noout -in /etc/ldap/cacert.pem
Le résultat apparaît de la forme :
notAfter=Sep 8 20:24:48 2016 GMT
Etape 6 :
Relancer l'instance LDAP SI sur Hygie :
/mnt/ldapsi-master/shell/exploit.sh stop
Puis :
/mnt/ldapsi-master/shell/exploit.sh start
Vérification prise en compte des nouveaux certificats :
echo | openssl s_client -connect ldap.gadz.org:636 2>/dev/null | openssl x509 -noout -dates
Le résultat apparaît de la forme :
notBefore=Sep 6 10:13:45 2016 GMT notAfter=Sep 4 10:13:45 2026 GMT
Il faut également penser à relancer les services nscd et nslcd sur Hygie, Hestia et Toutatis pour éviter les mauvaises surprises :
service nscd restart service nslcd restart