Skoči na vsebino

Preverjanje potrdil gruče PostgreSQL

Med namestitvijo, med obnovitvijo ali preprosto zato, da ugotovite, kdaj potečejo potrdila gruče PostgreSQL, je lahko koristno pregledati vsebino ustvarjenih potrdil.

Gruča PostgreSQL uporablja naslednja potrdila:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
/etc/etcd/
├── ca.crt
├── client.crt
├── client.key
├── peer.crt
└── peer.key

/etc/patroni/
├── ca.crt
├── client.crt
└── client.key
ca.crt

Potrdilo korenskega overitelja potrdil. Isto potrdilo je v mapah /etc/patroni/ in /etc/etcd/.

client.crt

Potrdilo vozlišča PostgreSQL. Isto potrdilo je v mapah /etc/patroni/ in /etc/etcd/. Uporabljata ga patroni in etcd za odjemalsko komunikacijo med vozlišči.

client.key

Ključ, povezan s potrdilom client.crt.

peer.crt

Isto potrdilo kot client.crt. Uporablja se za notranjo komunikacijo etcd med vozlišči.

peer.key

Isti ključ kot client.key.

Skupaj so torej trije elementi:

  • potrdilo korenskega overitelja potrdil (/etc/etcd/ca.crt, /etc/patroni/ca.crt);
  • potrdilo vozlišča PostgreSQL (/etc/etcd/client.crt, /etc/etcd/peer.crt, /etc/patroni/client.crt);
  • ključ, povezan s potrdilom vozlišča PostgreSQL (/etc/etcd/client.key, /etc/etcd/peer.key, /etc/patroni/client.key).

Preverjanje datuma poteka potrdila

Datum poteka potrdila preverite s spodnjim ukazom.

Spremenljivko za naslednji ukaz lahko prilagodite:

Vrednost po meri Spremenljivka Komentar
EXPIRY_CERT Pot potrdila, katerega datum poteka želite preveriti.

Lahko pa polje izpolnite z enim od potrdil gruče:

1
openssl x509 -in EXPIRY_CERT -noout -enddate

Če je datum poteka minil, se potrdilo šteje za neveljavno.

Opozorilo

Če je potekel overitelj potrdil, ki je izdal potrdilo, se potrdilo prav tako šteje za neveljavno. Zato preverite tudi datum poteka overitelja potrdil.

Primer

Za preverjanje datuma poteka potrdila /etc/patroni/client.crt uporabimo naslednji ukaz:

1
openssl x509 -in /etc/patroni/client.crt -noout -enddate

Izpis je podoben naslednjemu:

1
notAfter=Dec 18 14:04:09 2030 GMT

Potrdilo tukaj poteče 18. decembra 2030 ob 14:04:09.

Preverjanje nadomestnih imen subjekta (SAN) potrdila

Če želite preveriti imena SAN (Subject Alternative Names) potrdila, torej imena in naslove IP, za katere je potrdilo veljavno, uporabite spodnji ukaz.

Spremenljivko za naslednji ukaz lahko prilagodite:

Vrednost po meri Spremenljivka Komentar
SAN_CERT Pot potrdila, katerega imena SAN želite preveriti.

Lahko pa polje izpolnite z enim od potrdil vozlišča:

1
openssl x509 -in SAN_CERT -noout -ext subjectAltName

Če ime DNS ali naslov IP, uporabljen za povezavo z vozliščem, ni med imeni SAN njegovega potrdila, se povezava šteje za neveljavno. Podobno velja, ko vozlišče odpre povezavo z drugim vozliščem: če potrdilo, ki ga predloži, ne ustreza njegovemu lastnemu imenu DNS ali naslovu IP, oddaljeno vozlišče povezavo zavrne.

Primer

Za preverjanje imen SAN potrdila /etc/etcd/peer.crt uporabimo naslednji ukaz:

1
openssl x509 -in /etc/etcd/peer.crt -noout -ext subjectAltName

Ukaz vrne rezultat, podoben naslednjemu:

1
2
X509v3 Subject Alternative Name:
    DNS:PSQL_VIP, DNS:PSQL_2, IP Address:192.168.1.4, IP Address:192.168.1.2

Potrdilo tukaj zajema imeni DNS PSQL_VIP in PSQL_2 ter naslova IP 192.168.1.4 in 192.168.1.2.

Preverjanje, kateri overitelj potrdil je izdal potrdilo

Ob ustvarjanju potrdila mu je mogoče dodati razširitev X509v3 Authority Key Identifier. Ta razširitev lahko hrani zgoščeno vrednost javnega ključa izdajatelja, ki se ujema z vsebino razširitve X509v3 Subject Key Identifier izdajatelja.

Informacije

Potrdila, ustvarjena po dokumentaciji za namestitev gruče PostgreSQL, imajo razširitvi Authority Key Identifier in Subject Key Identifier.

Če sta ti razširitvi prisotni, lahko pridobite zgoščeno vrednost javnega ključa izdajatelja potrdila in jo nato primerjate z zgoščeno vrednostjo v razširitvi Subject Key Identifier overitelja potrdil (CA), ki naj bi izdal potrdilo, da potrdite, da gre za pravega.

Vrednost razširitve Authority Key Identifier potrdila pridobite s spodnjim ukazom.

Spremenljivko za naslednji ukaz lahko prilagodite:

Vrednost po meri Spremenljivka Komentar
ISSUED_CERT Pot potrdila, katerega izdajatelja želite preveriti.

Lahko pa polje izpolnite z enim od potrdil vozlišča:

1
openssl x509 -in ISSUED_CERT -noout -issuer -ext authorityKeyIdentifier

Informacije

Možnost -issuer pridobi CN potrdila izdajatelja.

Vrednost razširitve Subject Key Identifier potrdila pridobite s spodnjim ukazom.

Spremenljivko za naslednji ukaz lahko prilagodite:

Vrednost po meri Spremenljivka Komentar
ISSUER_CA Pot potrdila overitelja potrdil, za katerega se domneva, da je izdajatelj.

Lahko pa polje izpolnite z enim od potrdil overitelja potrdil:

1
openssl x509 -in ISSUER_CA -noout -subject -ext subjectKeyIdentifier

Informacije

Možnost -subject pridobi CN potrdila.

Primer

Preveriti želimo, ali je overitelj potrdil (CA), ki je podpisal potrdilo v datoteki /etc/patroni/client.crt, res tisti v datoteki /etc/patroni/ca.crt.
Najprej z naslednjim ukazom pridobimo vsebino razširitve X509v3 Authority Key Identifier potrdila /etc/patroni/client.crt:

1
openssl x509 -in /etc/patroni/client.crt -noout -issuer -ext authorityKeyIdentifier

Ukaz vrne:

1
2
3
issuer=CN = BDD-ROOT-CA
X509v3 Authority Key Identifier:
    38:B3:EC:CD:20:90:80:A4:B3:60:F8:E5:7B:98:92:3B:7D:26:06:2B

Nato z naslednjim ukazom pridobimo vsebino razširitve X509v3 Subject Key Identifier overitelja potrdil /etc/patroni/ca.crt:

1
openssl x509 -in /etc/patroni/ca.crt -noout -subject -ext subjectKeyIdentifier

Ukaz vrne:

1
2
3
subject=CN = BDD-ROOT-CA
X509v3 Subject Key Identifier:
    38:B3:EC:CD:20:90:80:A4:B3:60:F8:E5:7B:98:92:3B:7D:26:06:2B

Primerjava obeh izpisov pokaže, da sta Key Identifier in CN enaka: potrdilo v datoteki /etc/patroni/ca.crt je res overitelj potrdil, ki je podpisal potrdilo v datoteki /etc/patroni/client.crt.