Renouveler les certificats du cluster PostgreSQL¶
Préparatifs¶
Renouvellement des certificats¶
Avant d'agir sur les nœuds du cluster PostgreSQL, veuillez préparer de nouveaux certificats pour chacun des nœuds du cluster. Pour rappel les certificats doivent respecter plusieurs contraintes données dans les prérequis du cluster PostgreSQL.
Dans le cas où vous souhaitez réaliser la modification à chaud et sans impact sur la production, il vous faut satisfaire les conditions suivantes :
- L'autorité de certification n'a pas été renouvelée depuis la dernière génération des certificats des nœuds PostgreSQL
- L'autorité de certification n'expierera pas pendant la durée de validité des nouveaux certificats
- Il vous est encore possible de générer et signer des certificats avec la même autorité de certification qui a été utilisée lors de la précédente génération des certificats des nœuds PostgreSQL
- Les certificats des nœuds PostgreSQL n'ont pas encore expiré
Si ces conditions sont remplies, alors vous pouvez envisager le renouvellement des certificats à chaud et sans interruption de production.
Pour regénérer des certificats en utilisant la PKI openssl indiquée, de façon facultative, dans la documentation d'installation du cluster PostgreSQL, vous devez réutilser la clef de l'autorité de certification puis rejouer les commandes de génération des cerficats.
Dans le cas où il n'est pas possible de renouveler les certificats à chaud et que vous utilisez une PKI via openssl, nous vous conseillons d'en recréer une nouvelle.
Préparation des certificats¶
Il sera nécessaire d'envoyer dans /tmp/ sur chacun des nœuds PostgreSQL le certificat de l'autorité de certification racine avec une extension en .crt.
Il sera aussi nécessaire d'envoyer dans /tmp/ sur chacun des nœuds PostgreSQL le certificat et la clef privée qui lui est associé. Si vous n'avez qu'un fichier .p12 à disposition, veuillez exécuter les commandes suivantes pour extraire le certificat (psql.crt) et la clef privée (psql.key) :
1 2 | |
Veuillez remplacer dans les commandes précédentes P12_CERT par le nom de votre fichier de certificat .p12.
Renouvellement des certificats¶
Attention !
Si vous pouvez et souhaitez réaliser la mise à jour à chaud des certificats sans interruption de production il vous faudra :
- Réaliser séquentiellement le renouvellement des certificats sur chacun des nœuds
- Réaliser le renouvellement sur un nœud
REPLICAseulement (voir comment récupérer l'information du nœudLEADER) - Toujours avoir au moins 2 nœuds PostgreSQL opérationnels et intervenir sur le troisième
- Pour agir sur le nœud
LEADER, faire basculer leLEADERvers un autre nœud
Pour simplifier les actions suivantes, veuillez personnaliser avec vos valeurs les variables des commandes rencontrées ensuite (modifier la personnalisation pour chacun des nœuds PostgreSQL) :
| Valeur | Variable | Définition |
|---|---|---|
PSQL_CERT |
Nouveau certificat du nœud PostgreSQL. | |
PSQL_KEY |
Clef associée au nouveau certificat du nœud PostgreSQL. | |
PSQL_CA |
Certificat de l'autorité de certification racine ayant permis de générer le certificat du nœud PostgreSQL. |
Connectez-vous en SSH en tant que root au nœud PostgreSQL dont vous souhaitez mettre à jour ses certificats et exécutez les commandes suivantes pour remplacer les certificats :
1 2 3 4 5 6 7 8 9 10 | |
Pour finaliser la prise en compte des modifications de certificat, il est nécessaire de redémarrer le nœud PostgreSQL :
1 | |