Pāriet uz saturu

PostgreSQL klastera sertifikātu atjaunošana

Sagatavošanās darbības

Sertifikāta atjaunošana

Pirms jebkādu darbību veikšanas PostgreSQL klastera mezglos sagatavojiet jaunus sertifikātus katram klastera mezglam. Atgādinām, ka sertifikātiem ir jāatbilst vairākiem ierobežojumiem, kas norādīti PostgreSQL klastera priekšnosacījumos.

Ja vēlaties veikt izmaiņas darbības laikā, neietekmējot ražošanas vidi, ir jāizpilda šādi nosacījumi:

  • Sertifikācijas iestāde nav atjaunota kopš pēdējās PostgreSQL mezglu sertifikātu ģenerēšanas
  • Sertifikācijas iestādes derīguma termiņš nebeigsies jauno sertifikātu derīguma perioda laikā
  • Joprojām varat ģenerēt un parakstīt sertifikātus ar to pašu sertifikācijas iestādi, kas tika izmantota iepriekšējo PostgreSQL mezglu sertifikātu ģenerēšanai
  • PostgreSQL mezglu sertifikātu derīguma termiņš vēl nav beidzies

Ja šie nosacījumi ir izpildīti, varat apsvērt sertifikātu atjaunošanu darbības laikā, nepārtraucot ražošanas vidi.

Lai atkārtoti ģenerētu sertifikātus, izmantojot openssl PKI, kas pēc izvēles aprakstīta PostgreSQL klastera instalēšanas dokumentācijā, ir atkārtoti jāizmanto sertificēšanas iestādes atslēga un pēc tam vēlreiz jāizpilda sertifikātu ģenerēšanas komandas.

Ja sertifikātus nav iespējams atjaunot darbības laikā un izmantojat PKI ar openssl palīdzību, ieteicams izveidot jaunu.

Sertifikātu sagatavošana

Katram PostgreSQL mezglam direktorijā /tmp/ ir jānosūta saknes sertificēšanas iestādes sertifikāts ar paplašinājumu .crt.

Katram PostgreSQL mezglam direktorijā /tmp/ ir jānosūta arī sertifikāts un ar to saistītā privātā atslēga. Ja jums ir pieejams tikai viens .p12 fails, izpildiet tālāk norādītās komandas, lai izgūtu sertifikātu (psql.crt) un privāto atslēgu (psql.key):

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

Iepriekšējās komandās aizstājiet P12_CERT ar sava .p12 sertifikāta faila nosaukumu.

Sertifikāta atjaunošana

Brīdinājums!

Ja varat un vēlaties atjaunināt sertifikātus darbības laikā ar minimālu ražošanas vides dīkstāvi (1 minūte + lietotāju izrakstīšana), rīkojieties šādi:

  • Atjaunojiet sertifikātus secīgi katrā mezglā
  • Atjaunojiet sertifikātus tikai REPLICA mezglā (skatiet, kā izgūt informāciju no LEADER mezgla)
  • Vienmēr nodrošiniet, lai vismaz divi PostgreSQL mezgli darbotos, un strādājiet ar trešo
  • Lai strādātu ar LEADER mezglu, pārslēdziet LEADER uz citu mezglu; šīs darbības rezultātā lietotāji tiks izrakstīti un platforma būs nepieejama aptuveni 1 minūti

Lai vienkāršotu tālāk norādītās darbības, pielāgojiet tālāk norādīto komandu mainīgos atbilstoši savām vērtībām (pielāgojumu mainiet katram PostgreSQL mezglam):

Vērtība Mainīgais Definīcija
PSQL_CERT Jaunais PostgreSQL mezgla sertifikāts.
PSQL_KEY Atslēga, kas saistīta ar jauno PostgreSQL mezgla sertifikātu.
PSQL_CA Saknes sertificēšanas iestādes sertifikāts, kas tika izmantots PostgreSQL mezgla sertifikāta ģenerēšanai.

Izveidojiet SSH savienojumu kā root ar PostgreSQL mezglu, kura sertifikātus vēlaties atjaunināt, un izpildiet tālāk norādītās komandas, lai aizstātu sertifikātus:

 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

Lai pabeigtu sertifikātu izmaiņas, ir jārestartē PostgreSQL mezgls:

1
reboot