Kontrol af certifikaterne for PostgreSQL-clusteret¶
Under installationen, under en fornyelse eller blot for at finde ud af, hvornår certifikaterne for PostgreSQL-clusteret udløber, kan det være nyttigt at undersøge indholdet af de genererede certifikater.
PostgreSQL-clusteret bruger følgende certifikater:
1 2 3 4 5 6 7 8 9 10 11 | |
ca.crt-
Certifikat for rodcertificeringsmyndigheden. Det samme certifikat findes i mapperne
/etc/patroni/og/etc/etcd/. client.crt-
Certifikat for PostgreSQL-noden. Det samme certifikat findes i mapperne
/etc/patroni/og/etc/etcd/. Det bruges afpatroniogetcdtil klientkommunikationen mellem noderne. client.key-
Nøgle, der er knyttet til certifikatet
client.crt. peer.crt-
Samme certifikat som
client.crt. Det bruges til den interne kommunikation ietcdmellem noderne. peer.key-
Samme nøgle som
client.key.
Der er således i alt tre elementer:
- certifikatet for rodcertificeringsmyndigheden (
/etc/etcd/ca.crt,/etc/patroni/ca.crt); - certifikatet for PostgreSQL-noden (
/etc/etcd/client.crt,/etc/etcd/peer.crt,/etc/patroni/client.crt); - nøglen, der er knyttet til certifikatet for PostgreSQL-noden (
/etc/etcd/client.key,/etc/etcd/peer.key,/etc/patroni/client.key).
Kontrol af et certifikats udløbsdato¶
Brug kommandoen nedenfor for at kontrollere et certifikats udløbsdato.
Du kan tilpasse variablen i følgende kommando:
| Tilpasset værdi | Variabel | Kommentar |
|---|---|---|
EXPIRY_CERT |
Sti til det certifikat, hvis udløbsdato skal kontrolleres. |
Eller udfyld feltet med et af clusterets certifikater:
1 | |
Hvis udløbsdatoen er overskredet, betragtes certifikatet som ugyldigt.
Advarsel
Hvis den certificeringsmyndighed, der har udstedt certifikatet, er udløbet, betragtes certifikatet også som ugyldigt. Kontrollér derfor også certificeringsmyndighedens udløbsdato.
Eksempel
For at kontrollere udløbsdatoen for certifikatet /etc/patroni/client.crt bruger vi følgende kommando:
1 | |
Resultatet ligner dette:
1 | |
Her udløber certifikatet den 18. december 2030 kl. 14:04:09.
Kontrol af et certifikats Subject Alternative Names¶
Brug kommandoen nedenfor for at kontrollere et certifikats SAN'er (Subject Alternative Names), dvs. de navne og IP-adresser, som det er gyldigt for.
Du kan tilpasse variablen i følgende kommando:
| Tilpasset værdi | Variabel | Kommentar |
|---|---|---|
SAN_CERT |
Sti til det certifikat, hvis SAN'er skal kontrolleres. |
Eller udfyld feltet med et af nodens certifikater:
1 | |
Hvis det DNS-navn eller den IP-adresse, der bruges til at oprette forbindelse til en node, ikke findes i SAN'erne i nodens certifikat, betragtes forbindelsen som ugyldig. Ligeledes gælder det, at når en node åbner en forbindelse til en anden node, og det certifikat, den præsenterer, ikke svarer til dens eget DNS-navn eller dens egen IP-adresse, afviser den fjerne node forbindelsen.
Eksempel
For at kontrollere SAN'erne i certifikatet /etc/etcd/peer.crt bruger vi følgende kommando:
1 | |
Kommandoen returnerer et resultat, der ligner dette:
1 2 | |
Her dækker certifikatet DNS-navnene PSQL_VIP og PSQL_2 samt IP-adresserne 192.168.1.4 og 192.168.1.2.
Kontrol af, hvilken certificeringsmyndighed der har udstedt et certifikat¶
Når et certifikat genereres, kan X509v3-udvidelsen Authority Key Identifier føjes til det. Denne udvidelse kan indeholde hashværdien af udstederens offentlige nøgle, som svarer til indholdet af udstederens X509v3-udvidelse Subject Key Identifier.
Info
Certifikater, der er genereret ved at følge dokumentationen til installation af PostgreSQL-clusteret, har udvidelserne Authority Key Identifier og Subject Key Identifier.
Hvis disse udvidelser er til stede, kan du hente hashværdien af den offentlige nøgle for et certifikats udsteder og derefter sammenligne den med hashværdien i udvidelsen Subject Key Identifier for den CA, der formodes at have udstedt certifikatet, for at bekræfte, at det er den rigtige.
Brug kommandoen nedenfor for at hente værdien af udvidelsen Authority Key Identifier for et certifikat.
Du kan tilpasse variablen i følgende kommando:
| Tilpasset værdi | Variabel | Kommentar |
|---|---|---|
ISSUED_CERT |
Sti til det certifikat, hvis udsteder skal kontrolleres. |
Eller udfyld feltet med et af nodens certifikater:
1 | |
Info
Indstillingen -issuer henter CN for det udstedende certifikat.
Brug kommandoen nedenfor for at hente værdien af udvidelsen Subject Key Identifier for et certifikat.
Du kan tilpasse variablen i følgende kommando:
| Tilpasset værdi | Variabel | Kommentar |
|---|---|---|
ISSUER_CA |
Sti til certifikatet for den certificeringsmyndighed, der formodes at være udsteder. |
Eller udfyld feltet med et af certificeringsmyndighedens certifikater:
1 | |
Info
Indstillingen -subject henter certifikatets CN.
Eksempel
Vi vil kontrollere, at den CA, der har signeret certifikatet i filen /etc/patroni/client.crt, faktisk er den, der findes i filen /etc/patroni/ca.crt.
Først henter vi indholdet af X509v3-udvidelsen Authority Key Identifier for certifikatet /etc/patroni/client.crt med følgende kommando:
1 | |
Det returnerer:
1 2 3 | |
Derefter henter vi indholdet af X509v3-udvidelsen Subject Key Identifier for CA'en /etc/patroni/ca.crt med følgende kommando:
1 | |
Det returnerer:
1 2 3 | |
En sammenligning af de to resultater viser, at Key Identifier og CN er identiske: certifikatet i filen /etc/patroni/ca.crt er faktisk den CA, der har signeret certifikatet i filen /etc/patroni/client.crt.