Kihagyás

A PostgreSQL-fürt tanúsítványainak ellenőrzése

A telepítés vagy egy megújítás során, illetve egyszerűen annak megállapításához, hogy mikor járnak le a PostgreSQL-fürt tanúsítványai, hasznos lehet megvizsgálni a létrehozott tanúsítványok tartalmát.

A PostgreSQL-fürt a következő tanúsítványokat használja:

 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

A legfelső szintű hitelesítésszolgáltató tanúsítványa. Ugyanez a tanúsítvány megtalálható a következő könyvtárakban: /etc/patroni/ és /etc/etcd/.

client.crt

A PostgreSQL-csomópont tanúsítványa. Ugyanez a tanúsítvány megtalálható a következő könyvtárakban: /etc/patroni/ és /etc/etcd/. A patroni és az etcd ezt használja a csomópontok közötti ügyfélkommunikációhoz.

client.key

A client.crt tanúsítványhoz tartozó kulcs.

peer.crt

Ugyanaz a tanúsítvány, mint a client.crt. Az etcd csomópontok közötti belső kommunikációjához használatos.

peer.key

Ugyanaz a kulcs, mint a client.key.

Összesen tehát három elemről van szó:

  • a legfelső szintű hitelesítésszolgáltató tanúsítványa (/etc/etcd/ca.crt, /etc/patroni/ca.crt);
  • a PostgreSQL-csomópont tanúsítványa (/etc/etcd/client.crt, /etc/etcd/peer.crt, /etc/patroni/client.crt);
  • a PostgreSQL-csomópont tanúsítványához tartozó kulcs (/etc/etcd/client.key, /etc/etcd/peer.key, /etc/patroni/client.key).

Tanúsítvány lejárati dátumának ellenőrzése

Egy tanúsítvány lejárati dátumának ellenőrzéséhez használja az alábbi parancsot.

A következő parancs változóját testre szabhatja:

Egyéni érték Változó Megjegyzés
EXPIRY_CERT Annak a tanúsítványnak az elérési útja, amelynek a lejárati dátumát ellenőrizni szeretné.

Vagy töltse ki a mezőt a fürt valamelyik tanúsítványával:

1
openssl x509 -in EXPIRY_CERT -noout -enddate

Ha a lejárati dátum elmúlt, a tanúsítvány érvénytelennek minősül.

Figyelmeztetés

Ha a tanúsítványt kibocsátó hitelesítésszolgáltató lejárt, a tanúsítvány szintén érvénytelennek minősül. Ezért a hitelesítésszolgáltató lejárati dátumát is ellenőrizze.

Példa

Az /etc/patroni/client.crt tanúsítvány lejárati dátumának ellenőrzéséhez a következő parancsot használjuk:

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

A kimenet ehhez hasonló:

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

Itt a tanúsítvány 2030. december 18-án 14:04:09-kor jár le.

Tanúsítvány alternatív tulajdonosneveinek (Subject Alternative Names) ellenőrzése

Egy tanúsítvány SAN-jainak (Subject Alternative Names), vagyis azoknak a neveknek és IP-címeknek az ellenőrzéséhez, amelyekre a tanúsítvány érvényes, használja az alábbi parancsot.

A következő parancs változóját testre szabhatja:

Egyéni érték Változó Megjegyzés
SAN_CERT Annak a tanúsítványnak az elérési útja, amelynek a SAN-jait ellenőrizni szeretné.

Vagy töltse ki a mezőt valamelyik csomóponttanúsítvánnyal:

1
openssl x509 -in SAN_CERT -noout -ext subjectAltName

Ha a csomóponthoz való csatlakozáshoz használt DNS-név vagy IP-cím nem szerepel a csomópont tanúsítványának SAN-jai között, a kapcsolat érvénytelennek minősül. Hasonlóképpen, ha egy csomópont kapcsolatot nyit egy másik csomóponttal, és az általa bemutatott tanúsítvány nem egyezik a saját DNS-nevével vagy IP-címével, a távoli csomópont elutasítja a kapcsolatot.

Példa

Az /etc/etcd/peer.crt tanúsítvány SAN-jainak ellenőrzéséhez a következő parancsot használjuk:

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

A parancs ehhez hasonló eredményt ad vissza:

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

Itt a tanúsítvány a PSQL_VIP és a PSQL_2 DNS-nevet, valamint a 192.168.1.4 és a 192.168.1.2 IP-címet fedi le.

Annak ellenőrzése, hogy melyik hitelesítésszolgáltató bocsátotta ki a tanúsítványt

Tanúsítvány létrehozásakor hozzáadható az X509v3 Authority Key Identifier bővítmény. Ez a bővítmény tárolhatja a kibocsátó nyilvános kulcsának kivonatát, amely megegyezik a kibocsátó X509v3 Subject Key Identifier bővítményének tartalmával.

Információ

A PostgreSQL-fürt telepítési dokumentációját követve létrehozott tanúsítványok rendelkeznek az Authority Key Identifier és a Subject Key Identifier bővítménnyel.

Ha ezek a bővítmények megvannak, lekérheti a tanúsítvány kibocsátója nyilvános kulcsának kivonatát, majd összehasonlíthatja azzal a kivonattal, amely a tanúsítványt feltehetően kibocsátó hitelesítésszolgáltató Subject Key Identifier bővítményében található, így meggyőződhet arról, hogy valóban a megfelelő hitelesítésszolgáltatóról van szó.

Egy tanúsítvány Authority Key Identifier bővítménye értékének lekéréséhez használja az alábbi parancsot.

A következő parancs változóját testre szabhatja:

Egyéni érték Változó Megjegyzés
ISSUED_CERT Annak a tanúsítványnak az elérési útja, amelynek a kibocsátóját ellenőrizni szeretné.

Vagy töltse ki a mezőt valamelyik csomóponttanúsítvánnyal:

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

Információ

Az -issuer kapcsoló a kibocsátó tanúsítvány CN-jét kéri le.

Egy tanúsítvány Subject Key Identifier bővítménye értékének lekéréséhez használja az alábbi parancsot.

A következő parancs változóját testre szabhatja:

Egyéni érték Változó Megjegyzés
ISSUER_CA A feltételezett kibocsátó hitelesítésszolgáltató tanúsítványának elérési útja.

Vagy töltse ki a mezőt a hitelesítésszolgáltató valamelyik tanúsítványával:

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

Információ

A -subject kapcsoló a tanúsítvány CN-jét kéri le.

Példa

Ellenőrizni szeretnénk, hogy az /etc/patroni/client.crt fájlban lévő tanúsítványt aláíró hitelesítésszolgáltató valóban az /etc/patroni/ca.crt fájlban található-e.
Először a következő paranccsal lekérjük az /etc/patroni/client.crt tanúsítvány X509v3 Authority Key Identifier bővítményének tartalmát:

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

Ennek eredménye:

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

Ezután a következő paranccsal lekérjük az /etc/patroni/ca.crt hitelesítésszolgáltató X509v3 Subject Key Identifier bővítményének tartalmát:

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

Ennek eredménye:

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

A két kimenet összehasonlítása azt mutatja, hogy a Key Identifier és a CN azonos: az /etc/patroni/ca.crt fájlban lévő tanúsítvány valóban az a hitelesítésszolgáltató, amely az /etc/patroni/client.crt fájlban lévő tanúsítványt aláírta.