Skoči na vsebino

Obnavljanje potrdil gruče PostgreSQL

Priprave

Obnovitev potrdila

Preden izvedete kakršna koli dejanja na vozliščih gruče PostgreSQL, pripravite nova potrdila za vsa vozlišča gruče. Naj spomnimo, da morajo potrdila izpolnjevati več omejitev, navedenih v predpogojih za gručo PostgreSQL.

Če želite spremembo izvesti med delovanjem, brez vpliva na produkcijsko okolje, morate izpolniti naslednje pogoje:

  • Overitelj potrdil od zadnjega generiranja potrdil vozlišč PostgreSQL ni bil obnovljen
  • Overitelj potrdil ne bo potekel v obdobju veljavnosti novih potrdil
  • Potrdila lahko še vedno generirate in podpisujete z istim overiteljem potrdil, ki je bil uporabljen pri generiranju prejšnjih potrdil vozlišč PostgreSQL
  • Potrdila vozlišč PostgreSQL še niso potekla

Če so ti pogoji izpolnjeni, lahko razmislite o obnovitvi potrdil med delovanjem, brez prekinitve produkcijskega okolja.

Če želite znova ustvariti potrdila s PKI openssl, ki je kot izbirna možnost opisana v dokumentaciji za namestitev gruče PostgreSQL, morate znova uporabiti ključ overitelja potrdil in nato znova zagnati ukaze za ustvarjanje potrdil.

Če potrdil ni mogoče obnoviti med delovanjem in uporabljate PKI prek openssl, priporočamo, da ustvarite novo.

Priprava potrdil

Na vsako vozlišče PostgreSQL boste morali v /tmp/ poslati potrdilo korenskega overitelja potrdil s pripono .crt.

Na vsako vozlišče PostgreSQL boste morali v /tmp/ poslati tudi potrdilo in z njim povezani zasebni ključ. Če imate na voljo samo eno datoteko .p12, zaženite naslednje ukaze, da iz nje izvlečete potrdilo (psql.crt) in zasebni ključ (psql.key):

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

V prejšnjih ukazih zamenjajte P12_CERT z imenom svoje datoteke potrdila .p12.

Obnovitev potrdila

Opozorilo!

Če lahko in želite potrdila posodobiti med delovanjem z minimalnim izpadom produkcije (1 minuta + odjava uporabnikov), morate:

  • Potrdila obnavljati zaporedno na vsakem vozlišču
  • Potrdila obnavljati samo na vozlišču REPLICA (glejte, kako pridobiti informacije o vozlišču LEADER)
  • Vedno zagotoviti, da vsaj dve vozlišči PostgreSQL delujeta, in delati na tretjem
  • Če želite delati na vozlišču LEADER, preklopite LEADER na drugo vozlišče; to dejanje bo povzročilo odjavo uporabnikov in nedosegljivost platforme za približno 1 minuto

Za poenostavitev naslednjih dejanj prilagodite spremenljivke v spodnjih ukazih svojim vrednostim (prilagoditev spremenite za vsako vozlišče PostgreSQL):

Vrednost Spremenljivka Definicija
PSQL_CERT Novo potrdilo vozlišča PostgreSQL.
PSQL_KEY Ključ, povezan z novim potrdilom vozlišča PostgreSQL.
PSQL_CA Potrdilo korenskega overitelja potrdil, ki je bilo uporabljeno za ustvarjanje potrdila vozlišča PostgreSQL.

Prek SSH se kot root povežite z vozliščem PostgreSQL, katerega potrdila želite posodobiti, in zaženite naslednje ukaze, da zamenjate potrdila:

 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

Za dokončanje sprememb potrdil morate znova zagnati vozlišče PostgreSQL:

1
reboot