Hyppää sisältöön

PostgreSQL-klusterin sertifikaattien uusiminen

Valmistelut

Sertifikaatin uusiminen

Ennen kuin teet mitään toimenpiteitä PostgreSQL-klusterin solmuilla, valmistele uudet sertifikaatit klusterin jokaiselle solmulle. Muistutuksena: sertifikaattien on täytettävä useita rajoituksia, jotka on määritetty PostgreSQL-klusterin edellytyksissä.

Jos haluat tehdä muutoksen lennossa vaikuttamatta tuotantoon, sinun on täytettävä seuraavat ehdot:

  • Varmentajaa ei ole uusittu PostgreSQL-solmujen sertifikaattien viimeisen luonnin jälkeen
  • Varmentaja ei vanhene uusien sertifikaattien voimassaoloaikana
  • Voit edelleen luoda ja allekirjoittaa sertifikaatteja samalla varmentajalla, jota käytettiin PostgreSQL-solmujen aiempien sertifikaattien luonnissa
  • PostgreSQL-solmujen sertifikaatit eivät ole vielä vanhentuneet

Jos nämä ehdot täyttyvät, voit harkita sertifikaattien uusimista lennossa keskeyttämättä tuotantoa.

Jos haluat luoda sertifikaatit uudelleen openssl-PKI:llä, joka on valinnaisesti kuvattu PostgreSQL-klusterin asennusdokumentaatiossa, sinun on käytettävä uudelleen varmentajan avainta ja suoritettava sen jälkeen sertifikaattien luontikomennot uudelleen.

Jos sertifikaattien uusiminen lennossa ei ole mahdollista ja käytät PKI:tä openssl-työkalun kautta, suosittelemme, että luot uuden.

Sertifikaattien valmistelu

Sinun on lähetettävä juurivarmentajan sertifikaatti .crt-päätteellä hakemistoon /tmp/ jokaisella PostgreSQL-solmulla.

Sinun on lähetettävä myös sertifikaatti ja siihen liittyvä yksityinen avain hakemistoon /tmp/ jokaisella PostgreSQL-solmulla. Jos käytettävissäsi on vain yksi .p12-tiedosto, suorita seuraavat komennot sertifikaatin (psql.crt) ja yksityisen avaimen (psql.key) erottamiseksi:

1
2
openssl pkcs12 -clcerts -nokeys -out psql.crt -in P12_CERT
openssl pkcs12 -nocerts -out psql.key -in P12_CERT

Korvaa edellisissä komennoissa P12_CERT oman .p12-sertifikaattitiedostosi nimellä.

Sertifikaatin uusiminen

Varoitus!

Jos voit ja haluat päivittää sertifikaatit lennossa minimaalisella tuotantokatkolla (1 minuutti + käyttäjien uloskirjautuminen), sinun on:

  • Uusittava sertifikaatit jokaisella solmulla peräkkäin
  • Uusittava sertifikaatit vain REPLICA-solmulla (katso, miten LEADER-solmun tiedot haetaan)
  • Pidettävä aina vähintään kaksi PostgreSQL-solmua toimintakuntoisena ja työskenneltävä kolmannella
  • Jos haluat työskennellä LEADER-solmulla, vaihda LEADER toiselle solmulle; tämä toimenpide kirjaa käyttäjät ulos ja tekee alustan käyttämättömäksi noin 1 minuutin ajaksi

Seuraavien toimien helpottamiseksi mukauta alla olevien komentojen muuttujat omilla arvoillasi (muuta mukautus jokaiselle PostgreSQL-solmulle):

Arvo Muuttuja Määritelmä
PSQL_CERT PostgreSQL-solmun uusi sertifikaatti.
PSQL_KEY PostgreSQL-solmun uuteen sertifikaattiin liittyvä avain.
PSQL_CA Juurivarmentajan sertifikaatti, jota käytettiin PostgreSQL-solmun sertifikaatin luonnissa.

Muodosta SSH-yhteys root-käyttäjänä siihen PostgreSQL-solmuun, jonka sertifikaatit haluat päivittää, ja suorita seuraavat komennot sertifikaattien korvaamiseksi:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
cp /tmp/PSQL_CERT /etc/etcd/peer.crt
cp /tmp/PSQL_CERT /etc/etcd/client.crt
cp /tmp/PSQL_CERT /etc/patroni/client.crt
cp /tmp/PSQL_KEY /etc/etcd/peer.key
cp /tmp/PSQL_KEY /etc/etcd/client.key
cp /tmp/PSQL_KEY /etc/patroni/client.key
cp /tmp/PSQL_CA /etc/etcd/ca.crt
cp /tmp/PSQL_CA /etc/patroni/ca.crt
cp /tmp/PSQL_CA /usr/local/share/ca-certificates/PSQL-CA-`date +%G-%m-%d`.crt
update-ca-certificates

Sertifikaattien muutosten viimeistelemiseksi sinun on käynnistettävä PostgreSQL-solmu uudelleen:

1
reboot