Keri sisuni

PostgreSQL-i klastri sertifikaatide kontrollimine

Installimise või uuendamise ajal või lihtsalt selleks, et teada saada, millal PostgreSQL-i klastri sertifikaadid aeguvad, võib olla kasulik uurida genereeritud sertifikaatide sisu.

PostgreSQL-i klaster kasutab järgmisi sertifikaate:

 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

Juursertifitseerimisasutuse sertifikaat. Sama sertifikaat asub kataloogides /etc/patroni/ ja /etc/etcd/.

client.crt

PostgreSQL-i sõlme sertifikaat. Sama sertifikaat asub kataloogides /etc/patroni/ ja /etc/etcd/. Seda kasutavad patroni ja etcd sõlmedevaheliseks kliendisuhtluseks.

client.key

Sertifikaadiga client.crt seotud võti.

peer.crt

Sama sertifikaat mis client.crt. Seda kasutatakse sõlmedevaheliseks sisemiseks etcd-suhtluseks.

peer.key

Sama võti mis client.key.

Seega on kokku kolm elementi:

  • juursertifitseerimisasutuse sertifikaat (/etc/etcd/ca.crt, /etc/patroni/ca.crt);
  • PostgreSQL-i sõlme sertifikaat (/etc/etcd/client.crt, /etc/etcd/peer.crt, /etc/patroni/client.crt);
  • PostgreSQL-i sõlme sertifikaadiga seotud võti (/etc/etcd/client.key, /etc/etcd/peer.key, /etc/patroni/client.key).

Sertifikaadi aegumiskuupäeva kontrollimine

Sertifikaadi aegumiskuupäeva kontrollimiseks kasutage allolevat käsku.

Saate järgmise käsu muutujat kohandada:

Kohandatud väärtus Muutuja Kommentaar
EXPIRY_CERT Selle sertifikaadi tee, mille aegumiskuupäeva kontrollitakse.

Või täitke väli mõne klastri sertifikaadiga:

1
openssl x509 -in EXPIRY_CERT -noout -enddate

Kui aegumiskuupäev on möödunud, loetakse sertifikaat kehtetuks.

Hoiatus

Kui sertifikaadi väljastanud sertifitseerimisasutus on aegunud, loetakse ka sertifikaat kehtetuks. Seetõttu kontrollige ka sertifitseerimisasutuse aegumiskuupäeva.

Näide

Sertifikaadi /etc/patroni/client.crt aegumiskuupäeva kontrollimiseks kasutame järgmist käsku:

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

Väljund on umbes selline:

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

Siin aegub sertifikaat 18. detsembril 2030 kell 14:04:09.

Sertifikaadi alternatiivsete subjektinimede (Subject Alternative Names) kontrollimine

Sertifikaadi SAN-nimede (Subject Alternative Names), st nende nimede ja IP-aadresside, mille jaoks see kehtib, kontrollimiseks kasutage allolevat käsku.

Saate järgmise käsu muutujat kohandada:

Kohandatud väärtus Muutuja Kommentaar
SAN_CERT Selle sertifikaadi tee, mille SAN-nimesid kontrollitakse.

Või täitke väli mõne sõlme sertifikaadiga:

1
openssl x509 -in SAN_CERT -noout -ext subjectAltName

Kui sõlmega ühenduse loomiseks kasutatud DNS-nime või IP-aadressi pole selle sertifikaadi SAN-nimede hulgas, loetakse ühendus kehtetuks. Samamoodi, kui sõlm avab ühenduse teise sõlmega ja tema esitatud sertifikaat ei vasta tema enda DNS-nimele ega IP-aadressile, lükkab kaugsõlm ühenduse tagasi.

Näide

Sertifikaadi /etc/etcd/peer.crt SAN-nimede kontrollimiseks kasutame järgmist käsku:

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

Käsk tagastab umbes sellise tulemuse:

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

Siin hõlmab sertifikaat DNS-nimesid PSQL_VIP ja PSQL_2 ning IP-aadresse 192.168.1.4 ja 192.168.1.2.

Sertifikaadi väljastanud sertifitseerimisasutuse kontrollimine

Sertifikaadi genereerimisel saab sellele lisada X509v3-laienduse Authority Key Identifier. Sellesse laiendusse saab salvestada väljastaja avaliku võtme räsi, mis vastab väljastaja X509v3-laienduse Subject Key Identifier sisule.

Teave

Sertifikaatidel, mis on genereeritud PostgreSQL-i klastri installidokumentatsiooni järgi, on laiendused Authority Key Identifier ja Subject Key Identifier.

Kui need laiendused on olemas, saate hankida sertifikaadi väljastaja avaliku võtme räsi ja võrrelda seda selle CA, mis peaks sertifikaadi olema väljastanud, laienduse Subject Key Identifier räsiga, et veenduda, et see on õige.

Sertifikaadi laienduse Authority Key Identifier väärtuse hankimiseks kasutage allolevat käsku.

Saate järgmise käsu muutujat kohandada:

Kohandatud väärtus Muutuja Kommentaar
ISSUED_CERT Selle sertifikaadi tee, mille väljastajat kontrollitakse.

Või täitke väli mõne sõlme sertifikaadiga:

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

Teave

Suvand -issuer hangib väljastava sertifikaadi CN-i.

Sertifikaadi laienduse Subject Key Identifier väärtuse hankimiseks kasutage allolevat käsku.

Saate järgmise käsu muutujat kohandada:

Kohandatud väärtus Muutuja Kommentaar
ISSUER_CA Selle sertifitseerimisasutuse sertifikaadi tee, mida eeldatakse olevat väljastaja.

Või täitke väli mõne sertifitseerimisasutuse sertifikaadiga:

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

Teave

Suvand -subject hangib sertifikaadi CN-i.

Näide

Soovime kontrollida, et failis /etc/patroni/client.crt oleva sertifikaadi allkirjastanud CA on tõepoolest failis /etc/patroni/ca.crt olev CA.
Esmalt hangime järgmise käsuga sertifikaadi /etc/patroni/client.crt X509v3-laienduse Authority Key Identifier sisu:

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

Käsk tagastab:

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

Seejärel hangime järgmise käsuga CA /etc/patroni/ca.crt X509v3-laienduse Subject Key Identifier sisu:

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

Käsk tagastab:

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

Kahe väljundi võrdlemine näitab, et Key Identifier ja CN on identsed: failis /etc/patroni/ca.crt olev sertifikaat on tõepoolest CA, mis allkirjastas failis /etc/patroni/client.crt oleva sertifikaadi.