Förnya PostgreSQL-clustrets certifikat¶
Förberedelser¶
Förnyelse av certifikatet¶
Innan du utför några åtgärder på PostgreSQL-clustrets noder ska du förbereda nya certifikat för var och en av clustrets noder. Som påminnelse måste certifikaten uppfylla flera villkor som anges i förutsättningarna för PostgreSQL-clustret.
Om du vill göra ändringen i drift utan att påverka produktionen måste du uppfylla följande villkor:
- Certifikatutfärdaren har inte förnyats sedan den senaste genereringen av certifikaten för PostgreSQL-noderna
- Certifikatutfärdaren löper inte ut under de nya certifikatens giltighetstid
- Du kan fortfarande generera och signera certifikat med samma certifikatutfärdare som användes när de tidigare certifikaten för PostgreSQL-noderna genererades
- Certifikaten för PostgreSQL-noderna har ännu inte löpt ut
Om dessa villkor är uppfyllda kan du överväga att förnya certifikaten i drift utan att avbryta produktionen.
För att generera om certifikaten med den PKI baserad på openssl som valfritt beskrivs i dokumentationen för installationen av PostgreSQL-clustret måste du återanvända certifikatutfärdarens nyckel och därefter köra kommandona för certifikatgenerering igen.
Om det inte är möjligt att förnya certifikaten i drift och du använder en PKI via openssl rekommenderar vi att du skapar en ny.
Förbereda certifikaten¶
Du måste skicka rotcertifikatutfärdarens certifikat med filändelsen .crt till /tmp/ på var och en av PostgreSQL-noderna.
Du måste också skicka certifikatet och dess tillhörande privata nyckel till /tmp/ på var och en av PostgreSQL-noderna. Om du bara har en .p12-fil tillgänglig kör du följande kommandon för att extrahera certifikatet (psql.crt) och den privata nyckeln (psql.key):
1 2 | |
Ersätt P12_CERT i de föregående kommandona med namnet på din .p12-certifikatfil.
Förnyelse av certifikatet¶
Varning!
Om du kan och vill uppdatera certifikaten i drift med minimal driftstörning i produktionen (1 minut + utloggning av användarna) måste du:
- Förnya certifikaten i tur och ordning på varje nod
- Endast förnya certifikaten på en
REPLICA-nod (se hur du hämtar informationen om nodenLEADER) - Alltid hålla minst två PostgreSQL-noder i drift och arbeta på den tredje
- För att arbeta på noden
LEADER, växlaLEADERtill en annan nod; denna åtgärd leder till att användarna loggas ut och att plattformen är otillgänglig i cirka 1 minut
För att förenkla de följande åtgärderna anpassar du variablerna i kommandona nedan med dina värden (anpassningen ska ändras för varje PostgreSQL-nod):
| Värde | Variabel | Definition |
|---|---|---|
PSQL_CERT |
Nytt certifikat för PostgreSQL-noden. | |
PSQL_KEY |
Nyckel som hör till PostgreSQL-nodens nya certifikat. | |
PSQL_CA |
Certifikat från den rotcertifikatutfärdare som användes för att generera PostgreSQL-nodens certifikat. |
Anslut via SSH som root till den PostgreSQL-nod vars certifikat du vill uppdatera och kör följande kommandon för att ersätta certifikaten:
1 2 3 4 5 6 7 8 9 10 | |
För att slutföra certifikatändringarna måste du starta om PostgreSQL-noden:
1 | |