Kontrola certifikátov clustera PostgreSQL¶
Počas inštalácie, pri obnovení alebo jednoducho na zistenie, kedy uplynie platnosť certifikátov clustera PostgreSQL, môže byť užitočné preskúmať obsah vygenerovaných certifikátov.
Cluster PostgreSQL používa tieto certifikáty:
1 2 3 4 5 6 7 8 9 10 11 | |
ca.crt-
Certifikát koreňovej certifikačnej autority. Rovnaký certifikát sa nachádza v adresároch
/etc/patroni/a/etc/etcd/. client.crt-
Certifikát uzla PostgreSQL. Rovnaký certifikát sa nachádza v adresároch
/etc/patroni/a/etc/etcd/. Používajú hopatroniaetcdna klientsku komunikáciu medzi uzlami. client.key-
Kľúč priradený k certifikátu
client.crt. peer.crt-
Rovnaký certifikát ako
client.crt. Používa sa na internú komunikáciuetcdmedzi uzlami. peer.key-
Rovnaký kľúč ako
client.key.
Celkovo ide teda o tri položky:
- certifikát koreňovej certifikačnej autority (
/etc/etcd/ca.crt,/etc/patroni/ca.crt); - certifikát uzla PostgreSQL (
/etc/etcd/client.crt,/etc/etcd/peer.crt,/etc/patroni/client.crt); - kľúč priradený k certifikátu uzla PostgreSQL (
/etc/etcd/client.key,/etc/etcd/peer.key,/etc/patroni/client.key).
Kontrola dátumu uplynutia platnosti certifikátu¶
Na kontrolu dátumu uplynutia platnosti certifikátu použite príkaz nižšie.
Premennú pre nasledujúci príkaz môžete prispôsobiť:
| Vlastná hodnota | Premenná | Komentár |
|---|---|---|
EXPIRY_CERT |
Cesta k certifikátu, ktorého dátum uplynutia platnosti chcete skontrolovať. |
Alebo vyplňte pole jedným z certifikátov clustera:
1 | |
Ak je dátum uplynutia platnosti v minulosti, certifikát sa považuje za neplatný.
Upozornenie
Ak uplynula platnosť certifikačnej autority, ktorá certifikát vydala, certifikát sa tiež považuje za neplatný. Preto skontrolujte aj dátum uplynutia platnosti certifikačnej autority.
Príklad
Na kontrolu dátumu uplynutia platnosti certifikátu /etc/patroni/client.crt použijeme nasledujúci príkaz:
1 | |
Výstup je podobný tomuto:
1 | |
Tu platnosť certifikátu uplynie 18. decembra 2030 o 14:04:09.
Kontrola alternatívnych názvov subjektu (SAN) certifikátu¶
Na kontrolu názvov SAN (Subject Alternative Names) certifikátu, teda názvov a IP adries, pre ktoré je platný, použite príkaz nižšie.
Premennú pre nasledujúci príkaz môžete prispôsobiť:
| Vlastná hodnota | Premenná | Komentár |
|---|---|---|
SAN_CERT |
Cesta k certifikátu, ktorého názvy SAN chcete skontrolovať. |
Alebo vyplňte pole jedným z certifikátov uzla:
1 | |
Ak názov DNS alebo IP adresa použitá na pripojenie k uzlu nie je uvedená v názvoch SAN jeho certifikátu, pripojenie sa považuje za neplatné. Podobne, keď uzol otvára pripojenie k inému uzlu a certifikát, ktorý predkladá, nezodpovedá jeho vlastnému názvu DNS alebo IP adrese, vzdialený uzol pripojenie odmietne.
Príklad
Na kontrolu názvov SAN certifikátu /etc/etcd/peer.crt použijeme nasledujúci príkaz:
1 | |
Príkaz vráti výsledok podobný tomuto:
1 2 | |
Tu certifikát pokrýva názvy DNS PSQL_VIP a PSQL_2, ako aj IP adresy 192.168.1.4 a 192.168.1.2.
Kontrola, ktorá certifikačná autorita vydala certifikát¶
Pri generovaní certifikátu doň možno pridať rozšírenie X509v3 Authority Key Identifier. Toto rozšírenie môže uchovávať hash verejného kľúča vydavateľa, ktorý zodpovedá obsahu rozšírenia X509v3 Subject Key Identifier vydavateľa.
Informácie
Certifikáty vygenerované podľa dokumentácie k inštalácii clustera PostgreSQL obsahujú rozšírenia Authority Key Identifier a Subject Key Identifier.
Ak sú tieto rozšírenia prítomné, môžete získať hash verejného kľúča vydavateľa certifikátu a potom ho porovnať s hashom v rozšírení Subject Key Identifier certifikačnej autority (CA), ktorá mala certifikát vydať, a potvrdiť tak, že ide o správnu autoritu.
Na získanie hodnoty rozšírenia Authority Key Identifier certifikátu použite príkaz nižšie.
Premennú pre nasledujúci príkaz môžete prispôsobiť:
| Vlastná hodnota | Premenná | Komentár |
|---|---|---|
ISSUED_CERT |
Cesta k certifikátu, ktorého vydavateľa chcete skontrolovať. |
Alebo vyplňte pole jedným z certifikátov uzla:
1 | |
Informácie
Možnosť -issuer získa CN certifikátu vydavateľa.
Na získanie hodnoty rozšírenia Subject Key Identifier certifikátu použite príkaz nižšie.
Premennú pre nasledujúci príkaz môžete prispôsobiť:
| Vlastná hodnota | Premenná | Komentár |
|---|---|---|
ISSUER_CA |
Cesta k certifikátu certifikačnej autority, ktorá sa považuje za vydavateľa. |
Alebo vyplňte pole jedným z certifikátov certifikačnej autority:
1 | |
Informácie
Možnosť -subject získa CN certifikátu.
Príklad
Chceme overiť, či certifikačná autorita, ktorá podpísala certifikát v súbore /etc/patroni/client.crt, je skutočne tá zo súboru /etc/patroni/ca.crt.
Najprv získame obsah rozšírenia X509v3 Authority Key Identifier certifikátu /etc/patroni/client.crt nasledujúcim príkazom:
1 | |
Príkaz vráti:
1 2 3 | |
Potom získame obsah rozšírenia X509v3 Subject Key Identifier certifikačnej autority /etc/patroni/ca.crt nasledujúcim príkazom:
1 | |
Príkaz vráti:
1 2 3 | |
Porovnanie oboch výstupov ukazuje, že Key Identifier a CN sú zhodné: certifikát v súbore /etc/patroni/ca.crt je skutočne certifikačná autorita, ktorá podpísala certifikát v súbore /etc/patroni/client.crt.