Kihagyás

A PostgreSQL-fürt tanúsítványainak megújítása

Előkészületek

Tanúsítvány megújítása

Mielőtt bármilyen műveletet végezne a PostgreSQL-fürt csomópontjain, készítsen elő új tanúsítványokat a fürt minden csomópontjához. Emlékeztetőül: a tanúsítványoknak meg kell felelniük a PostgreSQL-fürt előfeltételeiben meghatározott számos korlátozásnak.

Ha a módosítást menet közben, az éles üzem befolyásolása nélkül szeretné elvégezni, a következő feltételeknek kell teljesülniük:

  • A hitelesítésszolgáltatót nem újították meg a PostgreSQL-csomópontok tanúsítványainak legutóbbi előállítása óta
  • A hitelesítésszolgáltató nem jár le az új tanúsítványok érvényességi ideje alatt
  • Továbbra is tud tanúsítványokat előállítani és aláírni ugyanazzal a hitelesítésszolgáltatóval, amelyet a PostgreSQL-csomópontok korábbi tanúsítványainak előállításakor használtak
  • A PostgreSQL-csomópontok tanúsítványai még nem jártak le

Ha ezek a feltételek teljesülnek, fontolóra veheti a tanúsítványok menet közbeni, az éles üzem megszakítása nélküli megújítását.

A tanúsítványoknak a PostgreSQL-fürt telepítési dokumentációjában opcionálisan ismertetett openssl PKI-val történő újbóli létrehozásához újra kell használnia a hitelesítésszolgáltató kulcsát, majd ismét le kell futtatnia a tanúsítványokat létrehozó parancsokat.

Ha a tanúsítványok menet közbeni megújítása nem lehetséges, és openssl segítségével létrehozott PKI-t használ, javasoljuk, hogy hozzon létre egy újat.

A tanúsítványok előkészítése

A legfelső szintű hitelesítésszolgáltató .crt kiterjesztésű tanúsítványát el kell küldenie az egyes PostgreSQL-csomópontok /tmp/ könyvtárába.

Emellett a tanúsítványt és a hozzá tartozó titkos kulcsot is el kell küldenie az egyes PostgreSQL-csomópontok /tmp/ könyvtárába. Ha csak egy .p12 fájl áll rendelkezésére, futtassa a következő parancsokat a tanúsítvány (psql.crt) és a titkos kulcs (psql.key) kinyeréséhez:

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

Az előző parancsokban cserélje le a P12_CERT értéket a .p12 tanúsítványfájl nevére.

A tanúsítvány megújítása

Figyelem!

Ha a tanúsítványokat működés közben, az éles üzem minimális leállásával (1 perc + a felhasználók kijelentkeztetése) tudja és szeretné frissíteni, a következőket kell tennie:

  • Újítsa meg a tanúsítványokat egymás után, minden csomóponton
  • Csak REPLICA csomóponton újítsa meg a tanúsítványokat (lásd: a LEADER csomópont adatainak lekérdezése)
  • Mindig legalább két PostgreSQL-csomópont legyen működőképes, és a harmadikon dolgozzon
  • A LEADER csomóponton végzett munkához kapcsolja át a LEADER szerepet egy másik csomópontra; ez a művelet a felhasználók kijelentkeztetésével jár, és a platform körülbelül 1 percig nem lesz elérhető

A következő műveletek egyszerűsítése érdekében adja meg saját értékeit az alábbi parancsok változóiban (a testreszabást minden PostgreSQL-csomópontnál módosítsa):

Érték Változó Meghatározás
PSQL_CERT A PostgreSQL-csomópont új tanúsítványa.
PSQL_KEY A PostgreSQL-csomópont új tanúsítványához tartozó kulcs.
PSQL_CA A legfelső szintű hitelesítésszolgáltató tanúsítványa, amellyel a PostgreSQL-csomópont tanúsítványát létrehozták.

Csatlakozzon SSH-n keresztül root felhasználóként ahhoz a PostgreSQL-csomóponthoz, amelynek a tanúsítványait frissíteni szeretné, és a tanúsítványok cseréjéhez futtassa a következő parancsokat:

 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

A tanúsítványmódosítások véglegesítéséhez újra kell indítania a PostgreSQL-csomópontot:

1
reboot