Pereiti prie turinio

PostgreSQL klasterio sertifikatų atnaujinimas

Pasirengimas

Sertifikato atnaujinimas

Prieš atlikdami bet kokius veiksmus PostgreSQL klasterio mazguose, paruoškite naujus sertifikatus kiekvienam klasterio mazgui. Primename, kad sertifikatai turi atitikti kelis apribojimus, nurodytus PostgreSQL klasterio būtinosiose sąlygose.

Jei norite atlikti pakeitimą veikimo metu nepaveikdami gamybinės aplinkos, turite atitikti šias sąlygas:

  • Sertifikavimo institucija nebuvo atnaujinta nuo paskutinio PostgreSQL mazgų sertifikatų generavimo
  • Sertifikavimo institucijos galiojimas nesibaigs per naujų sertifikatų galiojimo laikotarpį
  • Vis dar galite generuoti ir pasirašyti sertifikatus ta pačia sertifikavimo institucija, kuri buvo naudojama generuojant ankstesnius PostgreSQL mazgų sertifikatus
  • PostgreSQL mazgų sertifikatų galiojimas dar nesibaigė

Jei šios sąlygos tenkinamos, galite apsvarstyti galimybę atnaujinti sertifikatus veikimo metu nenutraukdami gamybinės aplinkos veikimo.

Norėdami iš naujo sugeneruoti sertifikatus naudodami openssl PKI, pasirinktinai aprašytą PostgreSQL klasterio diegimo dokumentacijoje, turite pakartotinai panaudoti sertifikavimo institucijos raktą ir iš naujo paleisti sertifikatų generavimo komandas.

Jei sertifikatų negalima atnaujinti veikimo metu ir naudojate PKI per openssl, rekomenduojame sukurti naują.

Sertifikatų paruošimas

Į kiekvieno PostgreSQL mazgo katalogą /tmp/ turėsite nusiųsti šakninės sertifikavimo institucijos sertifikatą su plėtiniu .crt.

Taip pat į kiekvieno PostgreSQL mazgo katalogą /tmp/ turėsite nusiųsti sertifikatą ir su juo susietą privatųjį raktą. Jei turite tik vieną .p12 failą, paleiskite šias komandas, kad išgautumėte sertifikatą (psql.crt) ir privatųjį raktą (psql.key):

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

Ankstesnėse komandose pakeiskite P12_CERT savo .p12 sertifikato failo pavadinimu.

Sertifikato atnaujinimas

Perspėjimas!

Jei galite ir norite atnaujinti sertifikatus veikimo metu su minimalia gamybinės aplinkos prastova (1 minutė + vartotojų atjungimas), turėsite:

  • Atnaujinti sertifikatus kiekviename mazge paeiliui
  • Atnaujinti sertifikatus tik REPLICA mazge (žr., kaip gauti informaciją apie LEADER mazgą)
  • Visada turėti bent du veikiančius PostgreSQL mazgus ir dirbti su trečiuoju
  • Norėdami dirbti su LEADER mazgu, perjunkite LEADER į kitą mazgą; dėl šio veiksmo vartotojai bus atjungti, o platforma bus nepasiekiama maždaug 1 minutę

Norėdami supaprastinti tolesnius veiksmus, pritaikykite toliau pateiktų komandų kintamuosius pagal savo reikšmes (kiekvienam PostgreSQL mazgui pritaikykite atskirai):

Reikšmė Kintamasis Aprašas
PSQL_CERT Naujas PostgreSQL mazgo sertifikatas.
PSQL_KEY Raktas, susietas su nauju PostgreSQL mazgo sertifikatu.
PSQL_CA Šakninės sertifikavimo institucijos sertifikatas, naudotas PostgreSQL mazgo sertifikatui generuoti.

Prisijunkite per SSH kaip root prie PostgreSQL mazgo, kurio sertifikatus norite atnaujinti, ir paleiskite šias komandas sertifikatams pakeisti:

 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

Kad sertifikatų pakeitimai įsigaliotų, turite iš naujo paleisti PostgreSQL mazgą:

1
reboot