Kontrollere sertifikatene til PostgreSQL-clusteren¶
Under installasjonen, under en fornyelse eller bare for å finne ut når sertifikatene til PostgreSQL-clusteren utløper, kan det være nyttig å undersøke innholdet i de genererte sertifikatene.
Sertifikatene som brukes av PostgreSQL-clusteren, er følgende:
1 2 3 4 5 6 7 8 9 10 11 | |
ca.crt-
Sertifikatet til rotsertifiseringsinstansen. Det samme sertifikatet finnes i katalogene
/etc/patroni/og/etc/etcd/. client.crt-
Sertifikatet til PostgreSQL-noden. Det samme sertifikatet finnes i katalogene
/etc/patroni/og/etc/etcd/. Det brukes avpatroniogetcdtil klientkommunikasjon mellom nodene. client.key-
Nøkkel knyttet til sertifikatet
client.crt. peer.crt-
Samme sertifikat som
client.crt. Det brukes til den interneetcd-kommunikasjonen mellom nodene. peer.key-
Samme nøkkel som
client.key.
Det er altså tre elementer i alt:
- sertifikatet til rotsertifiseringsinstansen (
/etc/etcd/ca.crt,/etc/patroni/ca.crt); - sertifikatet til PostgreSQL-noden (
/etc/etcd/client.crt,/etc/etcd/peer.crt,/etc/patroni/client.crt); - nøkkelen knyttet til sertifikatet til PostgreSQL-noden (
/etc/etcd/client.key,/etc/etcd/peer.key,/etc/patroni/client.key).
Kontrollere utløpsdatoen for et sertifikat¶
Bruk kommandoen nedenfor for å kontrollere utløpsdatoen for et sertifikat.
Du kan tilpasse variabelen for følgende kommando:
| Tilpasset verdi | Variabel | Kommentar |
|---|---|---|
EXPIRY_CERT |
Banen til sertifikatet du vil kontrollere utløpsdatoen for. |
Eller fyll ut feltet med ett av sertifikatene til clusteren:
1 | |
Hvis utløpsdatoen er passert, anses sertifikatet som ugyldig.
Adadvarsel
Hvis sertifiseringsinstansen som utstedte sertifikatet, er utløpt, anses sertifikatet også som ugyldig. Kontroller derfor også utløpsdatoen for sertifiseringsinstansen.
Eksempel
For å kontrollere utløpsdatoen for sertifikatet /etc/patroni/client.crt bruker vi følgende kommando:
1 | |
Utdataene ligner på dette:
1 | |
Her utløper sertifikatet 18. desember 2030 kl. 14:04:09.
Kontrollere Subject Alternative Names for et sertifikat¶
Bruk kommandoen nedenfor for å kontrollere SAN-ene (Subject Alternative Names) for et sertifikat, det vil si navnene og IP-adressene det er gyldig for.
Du kan tilpasse variabelen for følgende kommando:
| Tilpasset verdi | Variabel | Kommentar |
|---|---|---|
SAN_CERT |
Banen til sertifikatet du vil kontrollere SAN-ene for. |
Eller fyll ut feltet med ett av sertifikatene til noden:
1 | |
Hvis DNS-navnet eller IP-adressen som brukes for å koble til en node, ikke finnes blant SAN-ene i sertifikatet til noden, anses tilkoblingen som ugyldig. Tilsvarende avviser den eksterne noden tilkoblingen når en node åpner en tilkobling til en annen node og sertifikatet den presenterer, ikke samsvarer med nodens eget DNS-navn eller IP-adresse.
Eksempel
For å kontrollere SAN-ene i sertifikatet /etc/etcd/peer.crt bruker vi følgende kommando:
1 | |
Kommandoen returnerer et resultat som ligner på dette:
1 2 | |
Her dekker sertifikatet DNS-navnene PSQL_VIP og PSQL_2, samt IP-adressene 192.168.1.4 og 192.168.1.2.
Kontrollere hvilken sertifiseringsinstans som utstedte et sertifikat¶
Når et sertifikat genereres, kan X509v3-utvidelsen Authority Key Identifier legges til i det. Denne utvidelsen kan lagre hashverdien av utstederens offentlige nøkkel, som samsvarer med innholdet i utstederens X509v3-utvidelse Subject Key Identifier.
Info
Sertifikater som er generert ved å følge dokumentasjonen for installasjon av PostgreSQL-clusteren, har utvidelsene Authority Key Identifier og Subject Key Identifier.
Hvis disse utvidelsene finnes, kan du hente hashverdien av den offentlige nøkkelen til utstederen av et sertifikat, og deretter sammenligne den med hashverdien i utvidelsen Subject Key Identifier for den CA som skal ha utstedt sertifikatet, for å bekrefte at det er riktig CA.
Bruk kommandoen nedenfor for å hente verdien av utvidelsen Authority Key Identifier for et sertifikat.
Du kan tilpasse variabelen for følgende kommando:
| Tilpasset verdi | Variabel | Kommentar |
|---|---|---|
ISSUED_CERT |
Banen til sertifikatet du vil kontrollere utstederen for. |
Eller fyll ut feltet med ett av sertifikatene til noden:
1 | |
Info
Alternativet -issuer henter CN for det utstedende sertifikatet.
Bruk kommandoen nedenfor for å hente verdien av utvidelsen Subject Key Identifier for et sertifikat.
Du kan tilpasse variabelen for følgende kommando:
| Tilpasset verdi | Variabel | Kommentar |
|---|---|---|
ISSUER_CA |
Banen til sertifikatet til sertifiseringsinstansen som antas å være utstederen. |
Eller fyll ut feltet med ett av sertifikatene til sertifiseringsinstansen:
1 | |
Info
Alternativet -subject henter CN for sertifikatet.
Eksempel
Vi vil kontrollere at den CA som signerte sertifikatet i filen /etc/patroni/client.crt, faktisk er den som ligger i filen /etc/patroni/ca.crt.
Først henter vi innholdet i X509v3-utvidelsen Authority Key Identifier for sertifikatet /etc/patroni/client.crt med følgende kommando:
1 | |
Dette returnerer:
1 2 3 | |
Deretter henter vi innholdet i X509v3-utvidelsen Subject Key Identifier for CA-sertifikatet /etc/patroni/ca.crt med følgende kommando:
1 | |
Dette returnerer:
1 2 3 | |
Ved å sammenligne de to utdataene ser vi at Key Identifier og CN er identiske: sertifikatet i filen /etc/patroni/ca.crt er faktisk den CA som signerte sertifikatet i filen /etc/patroni/client.crt.