De certificaten van de PostgreSQL-cluster controleren¶
Tijdens de installatie, bij een vernieuwing of gewoon om te weten wanneer de certificaten van de PostgreSQL-cluster verlopen, kan het nuttig zijn de inhoud van de gegenereerde certificaten te bekijken.
De certificaten die de PostgreSQL-cluster gebruikt, zijn de volgende:
1 2 3 4 5 6 7 8 9 10 11 | |
ca.crt-
Certificaat van de root-certificeringsinstantie. Hetzelfde certificaat staat in de mappen
/etc/patroni/en/etc/etcd/. client.crt-
Certificaat van de PostgreSQL-node. Hetzelfde certificaat staat in de mappen
/etc/patroni/en/etc/etcd/. Het wordt doorpatronienetcdgebruikt voor de clientcommunicatie tussen de nodes. client.key-
Sleutel die bij het certificaat
client.crthoort. peer.crt-
Hetzelfde certificaat als
client.crt. Het wordt gebruikt voor de interne communicatie vanetcdtussen de nodes. peer.key-
Dezelfde sleutel als
client.key.
Er zijn dus in totaal drie elementen:
- het certificaat van de root-certificeringsinstantie (
/etc/etcd/ca.crt,/etc/patroni/ca.crt); - het certificaat van de PostgreSQL-node (
/etc/etcd/client.crt,/etc/etcd/peer.crt,/etc/patroni/client.crt); - de sleutel die bij het certificaat van de PostgreSQL-node hoort (
/etc/etcd/client.key,/etc/etcd/peer.key,/etc/patroni/client.key).
De vervaldatum van een certificaat controleren¶
Gebruik de onderstaande opdracht om de vervaldatum van een certificaat te controleren.
U kunt de variabele van de volgende opdracht aanpassen:
| Aangepaste waarde | Variabele | Opmerking |
|---|---|---|
EXPIRY_CERT |
Pad van het certificaat waarvan u de vervaldatum wilt controleren. |
Of vul het veld met een van de certificaten van de cluster:
1 | |
Als de vervaldatum verstreken is, wordt het certificaat als ongeldig beschouwd.
Waarschuwing
Als de certificeringsinstantie die het certificaat heeft uitgegeven, verlopen is, wordt het certificaat eveneens als ongeldig beschouwd. Controleer daarom ook de vervaldatum van de certificeringsinstantie.
Voorbeeld
Om de vervaldatum van het certificaat /etc/patroni/client.crt te controleren, gebruiken we de volgende opdracht:
1 | |
De uitvoer ziet er ongeveer zo uit:
1 | |
Hier verloopt het certificaat op 18 december 2030 om 14:04:09.
De Subject Alternative Names van een certificaat controleren¶
Gebruik de onderstaande opdracht om de SAN's (Subject Alternative Names) van een certificaat te controleren, dat wil zeggen de namen en IP-adressen waarvoor het geldig is.
U kunt de variabele van de volgende opdracht aanpassen:
| Aangepaste waarde | Variabele | Opmerking |
|---|---|---|
SAN_CERT |
Pad van het certificaat waarvan u de SAN's wilt controleren. |
Of vul het veld met een van de certificaten van de node:
1 | |
Als de DNS-naam of het IP-adres waarmee verbinding met een node wordt gemaakt, niet in de SAN's van zijn certificaat staat, wordt de verbinding als ongeldig beschouwd. Evenzo geldt: wanneer een node een verbinding met een andere node opent en het certificaat dat hij presenteert niet overeenkomt met zijn eigen DNS-naam of IP-adres, weigert de externe node de verbinding.
Voorbeeld
Om de SAN's van het certificaat /etc/etcd/peer.crt te controleren, gebruiken we de volgende opdracht:
1 | |
De opdracht geeft een resultaat terug dat er ongeveer zo uitziet:
1 2 | |
Hier dekt het certificaat de DNS-namen PSQL_VIP en PSQL_2, evenals de IP-adressen 192.168.1.4 en 192.168.1.2.
Controleren welke certificeringsinstantie een certificaat heeft uitgegeven¶
Bij het genereren van een certificaat kan de X509v3-extensie Authority Key Identifier eraan worden toegevoegd. Deze extensie kan de hash van de openbare sleutel van de uitgever opslaan, die overeenkomt met de inhoud van de X509v3-extensie Subject Key Identifier van de uitgever.
Info
Certificaten die zijn gegenereerd volgens de installatiedocumentatie van de PostgreSQL-cluster hebben de extensies Authority Key Identifier en Subject Key Identifier.
Als deze extensies aanwezig zijn, kunt u de hash van de openbare sleutel van de uitgever van een certificaat ophalen en die vergelijken met de hash in de extensie Subject Key Identifier van de CA die het certificaat verondersteld wordt te hebben uitgegeven, om te bevestigen dat het de juiste is.
Gebruik de onderstaande opdracht om de waarde van de extensie Authority Key Identifier van een certificaat op te halen.
U kunt de variabele van de volgende opdracht aanpassen:
| Aangepaste waarde | Variabele | Opmerking |
|---|---|---|
ISSUED_CERT |
Pad van het certificaat waarvan u de uitgever wilt controleren. |
Of vul het veld met een van de certificaten van de node:
1 | |
Info
De optie -issuer haalt de CN van het uitgevende certificaat op.
Gebruik de onderstaande opdracht om de waarde van de extensie Subject Key Identifier van een certificaat op te halen.
U kunt de variabele van de volgende opdracht aanpassen:
| Aangepaste waarde | Variabele | Opmerking |
|---|---|---|
ISSUER_CA |
Pad van het certificaat van de certificeringsinstantie die vermoedelijk de uitgever is. |
Of vul het veld met een van de certificaten van de certificeringsinstantie:
1 | |
Info
De optie -subject haalt de CN van het certificaat op.
Voorbeeld
We willen controleren of de CA die het certificaat in het bestand /etc/patroni/client.crt heeft ondertekend, wel degelijk die in het bestand /etc/patroni/ca.crt is.
We halen eerst de inhoud van de X509v3-extensie Authority Key Identifier van het certificaat /etc/patroni/client.crt op met de volgende opdracht:
1 | |
Dit geeft het volgende terug:
1 2 3 | |
Vervolgens halen we de inhoud van de X509v3-extensie Subject Key Identifier van de CA /etc/patroni/ca.crt op met de volgende opdracht:
1 | |
Dit geeft het volgende terug:
1 2 3 | |
Uit de vergelijking van beide uitvoeren blijkt dat de Key Identifier en de CN identiek zijn: het certificaat in het bestand /etc/patroni/ca.crt is wel degelijk de CA die het certificaat in het bestand /etc/patroni/client.crt heeft ondertekend.