Sprawdzanie certyfikatów clustera PostgreSQL¶
Podczas instalacji, podczas odnawiania lub po prostu po to, aby sprawdzić, kiedy wygasają certyfikaty clustera PostgreSQL, przydatne może być zbadanie zawartości wygenerowanych certyfikatów.
Cluster PostgreSQL używa następujących certyfikatów:
1 2 3 4 5 6 7 8 9 10 11 | |
ca.crt-
Certyfikat głównego urzędu certyfikacji. Ten sam certyfikat znajduje się w katalogach
/etc/patroni/i/etc/etcd/. client.crt-
Certyfikat węzła PostgreSQL. Ten sam certyfikat znajduje się w katalogach
/etc/patroni/i/etc/etcd/. Jest używany przezpatroniietcddo komunikacji klienckiej między węzłami. client.key-
Klucz powiązany z certyfikatem
client.crt. peer.crt-
Ten sam certyfikat co
client.crt. Jest używany do wewnętrznej komunikacjietcdmiędzy węzłami. peer.key-
Ten sam klucz co
client.key.
Łącznie są więc trzy elementy:
- certyfikat głównego urzędu certyfikacji (
/etc/etcd/ca.crt,/etc/patroni/ca.crt); - certyfikat węzła PostgreSQL (
/etc/etcd/client.crt,/etc/etcd/peer.crt,/etc/patroni/client.crt); - klucz powiązany z certyfikatem węzła PostgreSQL (
/etc/etcd/client.key,/etc/etcd/peer.key,/etc/patroni/client.key).
Sprawdzanie daty wygaśnięcia certyfikatu¶
Aby sprawdzić datę wygaśnięcia certyfikatu, użyj poniższego polecenia.
Możesz dostosować zmienną poniższego polecenia:
| Wartość dostosowana | Zmienna | Komentarz |
|---|---|---|
EXPIRY_CERT |
Ścieżka certyfikatu, którego datę wygaśnięcia chcesz sprawdzić. |
Albo wypełnij pole jednym z certyfikatów clustera:
1 | |
Jeśli data wygaśnięcia minęła, certyfikat jest uznawany za nieważny.
Ostrzeżenie
Jeśli urząd certyfikacji, który wydał certyfikat, wygasł, certyfikat również jest uznawany za nieważny. Sprawdź więc także datę wygaśnięcia urzędu certyfikacji.
Przykład
Aby sprawdzić datę wygaśnięcia certyfikatu /etc/patroni/client.crt, używamy następującego polecenia:
1 | |
Wynik jest podobny do poniższego:
1 | |
W tym przypadku certyfikat wygasa 18 grudnia 2030 r. o godzinie 14:04:09.
Sprawdzanie nazw alternatywnych (SAN) certyfikatu¶
Aby sprawdzić SAN (Subject Alternative Names) certyfikatu, czyli nazwy i adresy IP, dla których jest on ważny, użyj poniższego polecenia.
Możesz dostosować zmienną poniższego polecenia:
| Wartość dostosowana | Zmienna | Komentarz |
|---|---|---|
SAN_CERT |
Ścieżka certyfikatu, którego SAN chcesz sprawdzić. |
Albo wypełnij pole jednym z certyfikatów węzła:
1 | |
Jeśli nazwa DNS lub adres IP użyte do połączenia z węzłem nie znajdują się w SAN jego certyfikatu, połączenie jest uznawane za nieważne. Podobnie, gdy węzeł otwiera połączenie z innym węzłem, a przedstawiony przez niego certyfikat nie odpowiada jego własnej nazwie DNS lub adresowi IP, węzeł zdalny odrzuca połączenie.
Przykład
Aby sprawdzić SAN certyfikatu /etc/etcd/peer.crt, używamy następującego polecenia:
1 | |
Polecenie zwraca wynik podobny do poniższego:
1 2 | |
W tym przypadku certyfikat obejmuje nazwy DNS PSQL_VIP i PSQL_2, a także adresy IP 192.168.1.4 i 192.168.1.2.
Sprawdzanie, który urząd certyfikacji wydał certyfikat¶
Podczas generowania certyfikatu można dodać do niego rozszerzenie X509v3 Authority Key Identifier. To rozszerzenie może przechowywać skrót klucza publicznego wystawcy, który odpowiada zawartości rozszerzenia X509v3 Subject Key Identifier wystawcy.
Info
Certyfikaty wygenerowane zgodnie z dokumentacją instalacji clustera PostgreSQL mają rozszerzenia Authority Key Identifier i Subject Key Identifier.
Jeśli te rozszerzenia są obecne, możesz pobrać skrót klucza publicznego wystawcy certyfikatu, a następnie porównać go ze skrótem zawartym w rozszerzeniu Subject Key Identifier urzędu CA, który miał wydać certyfikat, aby potwierdzić, że chodzi o właściwy urząd.
Aby pobrać wartość rozszerzenia Authority Key Identifier certyfikatu, użyj poniższego polecenia.
Możesz dostosować zmienną poniższego polecenia:
| Wartość dostosowana | Zmienna | Komentarz |
|---|---|---|
ISSUED_CERT |
Ścieżka certyfikatu, którego wystawcę chcesz sprawdzić. |
Albo wypełnij pole jednym z certyfikatów węzła:
1 | |
Info
Opcja -issuer pozwala pobrać CN certyfikatu wystawcy.
Aby pobrać wartość rozszerzenia Subject Key Identifier certyfikatu, użyj poniższego polecenia.
Możesz dostosować zmienną poniższego polecenia:
| Wartość dostosowana | Zmienna | Komentarz |
|---|---|---|
ISSUER_CA |
Ścieżka certyfikatu urzędu certyfikacji, który uznaje się za wystawcę. |
Albo wypełnij pole jednym z certyfikatów urzędu certyfikacji:
1 | |
Info
Opcja -subject pozwala pobrać CN certyfikatu.
Przykład
Chcemy sprawdzić, czy urząd CA, który podpisał certyfikat zawarty w pliku /etc/patroni/client.crt, jest rzeczywiście tym zawartym w pliku /etc/patroni/ca.crt.
Najpierw pobieramy zawartość rozszerzenia X509v3 Authority Key Identifier certyfikatu /etc/patroni/client.crt za pomocą następującego polecenia:
1 | |
Polecenie zwraca:
1 2 3 | |
Następnie pobieramy zawartość rozszerzenia X509v3 Subject Key Identifier urzędu CA /etc/patroni/ca.crt za pomocą następującego polecenia:
1 | |
Polecenie zwraca:
1 2 3 | |
Porównanie obu wyników pokazuje, że Key Identifier i CN są identyczne: certyfikat zawarty w pliku /etc/patroni/ca.crt jest rzeczywiście urzędem CA, który podpisał certyfikat zawarty w pliku /etc/patroni/client.crt.