Έλεγχος των πιστοποιητικών του συμπλέγματος PostgreSQL¶
Κατά την εγκατάσταση, κατά μια ανανέωση ή απλώς για να μάθετε πότε λήγουν τα πιστοποιητικά του συμπλέγματος PostgreSQL, μπορεί να είναι χρήσιμο να εξετάσετε το περιεχόμενο των πιστοποιητικών που δημιουργήθηκαν.
Τα πιστοποιητικά που χρησιμοποιεί το σύμπλεγμα PostgreSQL είναι τα εξής:
1 2 3 4 5 6 7 8 9 10 11 | |
ca.crt-
Πιστοποιητικό της αρχής έκδοσης πιστοποιητικών ρίζας. Το ίδιο πιστοποιητικό υπάρχει στους καταλόγους
/etc/patroni/και/etc/etcd/. client.crt-
Πιστοποιητικό του κόμβου PostgreSQL. Το ίδιο πιστοποιητικό υπάρχει στους καταλόγους
/etc/patroni/και/etc/etcd/. Χρησιμοποιείται από τις υπηρεσίεςpatroniκαιetcdγια τις επικοινωνίες προγράμματος-πελάτη μεταξύ των κόμβων. client.key-
Κλειδί συσχετισμένο με το πιστοποιητικό
client.crt. peer.crt-
Ίδιο πιστοποιητικό με το
client.crt. Χρησιμοποιείται για τις εσωτερικές επικοινωνίες της υπηρεσίαςetcdμεταξύ των κόμβων. peer.key-
Ίδιο κλειδί με το
client.key.
Υπάρχουν επομένως συνολικά τρία στοιχεία:
- το πιστοποιητικό της αρχής έκδοσης πιστοποιητικών ρίζας (
/etc/etcd/ca.crt,/etc/patroni/ca.crt)· - το πιστοποιητικό του κόμβου PostgreSQL (
/etc/etcd/client.crt,/etc/etcd/peer.crt,/etc/patroni/client.crt)· - το κλειδί που συσχετίζεται με το πιστοποιητικό του κόμβου PostgreSQL (
/etc/etcd/client.key,/etc/etcd/peer.key,/etc/patroni/client.key).
Έλεγχος της ημερομηνίας λήξης ενός πιστοποιητικού¶
Για να ελέγξετε την ημερομηνία λήξης ενός πιστοποιητικού, χρησιμοποιήστε την παρακάτω εντολή.
Μπορείτε να προσαρμόσετε τη μεταβλητή της παρακάτω εντολής:
| Προσαρμοσμένη τιμή | Μεταβλητή | Σχόλιο |
|---|---|---|
EXPIRY_CERT |
Διαδρομή του πιστοποιητικού του οποίου θα ελεγχθεί η ημερομηνία λήξης. |
Ή συμπληρώστε το πεδίο με ένα από τα πιστοποιητικά του συμπλέγματος:
1 | |
Εάν η ημερομηνία λήξης έχει παρέλθει, το πιστοποιητικό θεωρείται μη έγκυρο.
Προειδοποίηση
Εάν η αρχή έκδοσης πιστοποιητικών που εξέδωσε το πιστοποιητικό έχει λήξει, το πιστοποιητικό θεωρείται επίσης μη έγκυρο. Επομένως, ελέγξτε και την ημερομηνία λήξης της αρχής έκδοσης πιστοποιητικών.
Παράδειγμα
Για να ελέγξουμε την ημερομηνία λήξης του πιστοποιητικού /etc/patroni/client.crt, χρησιμοποιούμε την ακόλουθη εντολή:
1 | |
Η έξοδος είναι παρόμοια με την ακόλουθη:
1 | |
Εδώ, το πιστοποιητικό λήγει στις 18 Δεκεμβρίου 2030, ώρα 14:04:09.
Έλεγχος των εναλλακτικών ονομάτων θέματος (Subject Alternative Names) ενός πιστοποιητικού¶
Για να ελέγξετε τα SAN (Subject Alternative Names, εναλλακτικά ονόματα θέματος) ενός πιστοποιητικού, δηλαδή τα ονόματα και τις διευθύνσεις IP για τα οποία είναι έγκυρο, χρησιμοποιήστε την παρακάτω εντολή.
Μπορείτε να προσαρμόσετε τη μεταβλητή της παρακάτω εντολής:
| Προσαρμοσμένη τιμή | Μεταβλητή | Σχόλιο |
|---|---|---|
SAN_CERT |
Διαδρομή του πιστοποιητικού του οποίου θα ελεγχθούν τα SAN. |
Ή συμπληρώστε το πεδίο με ένα από τα πιστοποιητικά των κόμβων:
1 | |
Εάν το όνομα DNS ή η διεύθυνση IP που χρησιμοποιείται για τη σύνδεση σε έναν κόμβο δεν περιλαμβάνεται στα SAN του πιστοποιητικού του, η σύνδεση θεωρείται μη έγκυρη. Ομοίως, όταν ένας κόμβος ανοίγει σύνδεση προς άλλον κόμβο, εάν το πιστοποιητικό που παρουσιάζει δεν αντιστοιχεί στο δικό του όνομα DNS ή στη δική του διεύθυνση IP, ο απομακρυσμένος κόμβος απορρίπτει τη σύνδεση.
Παράδειγμα
Για να ελέγξουμε τα SAN του πιστοποιητικού /etc/etcd/peer.crt, χρησιμοποιούμε την ακόλουθη εντολή:
1 | |
Η εντολή επιστρέφει ένα αποτέλεσμα παρόμοιο με το ακόλουθο:
1 2 | |
Εδώ, το πιστοποιητικό καλύπτει τα ονόματα DNS PSQL_VIP και PSQL_2, καθώς και τις διευθύνσεις IP 192.168.1.4 και 192.168.1.2.
Έλεγχος της αρχής έκδοσης πιστοποιητικών που εξέδωσε ένα πιστοποιητικό¶
Κατά τη δημιουργία ενός πιστοποιητικού, μπορεί να προστεθεί σε αυτό η επέκταση X509v3 Authority Key Identifier. Η επέκταση αυτή μπορεί να αποθηκεύει την τιμή κατακερματισμού του δημόσιου κλειδιού του εκδότη του, η οποία αντιστοιχεί στο περιεχόμενο της επέκτασης X509v3 Subject Key Identifier του εκδότη.
Πληροφορίες
Τα πιστοποιητικά που δημιουργούνται ακολουθώντας την τεκμηρίωση εγκατάστασης του συμπλέγματος PostgreSQL διαθέτουν τις επεκτάσεις Authority Key Identifier και Subject Key Identifier.
Εάν υπάρχουν αυτές οι επεκτάσεις, μπορείτε να ανακτήσετε την τιμή κατακερματισμού του δημόσιου κλειδιού του εκδότη ενός πιστοποιητικού και, στη συνέχεια, να τη συγκρίνετε με την τιμή κατακερματισμού της επέκτασης Subject Key Identifier της αρχής έκδοσης πιστοποιητικών (CA) που υποτίθεται ότι εξέδωσε το πιστοποιητικό, για να επιβεβαιώσετε ότι πρόκειται για τη σωστή.
Για να ανακτήσετε την τιμή της επέκτασης Authority Key Identifier ενός πιστοποιητικού, χρησιμοποιήστε την παρακάτω εντολή.
Μπορείτε να προσαρμόσετε τη μεταβλητή της παρακάτω εντολής:
| Προσαρμοσμένη τιμή | Μεταβλητή | Σχόλιο |
|---|---|---|
ISSUED_CERT |
Διαδρομή του πιστοποιητικού του οποίου θα ελεγχθεί ο εκδότης. |
Ή συμπληρώστε το πεδίο με ένα από τα πιστοποιητικά των κόμβων:
1 | |
Πληροφορίες
Η επιλογή -issuer ανακτά το CN του πιστοποιητικού του εκδότη.
Για να ανακτήσετε την τιμή της επέκτασης Subject Key Identifier ενός πιστοποιητικού, χρησιμοποιήστε την παρακάτω εντολή.
Μπορείτε να προσαρμόσετε τη μεταβλητή της παρακάτω εντολής:
| Προσαρμοσμένη τιμή | Μεταβλητή | Σχόλιο |
|---|---|---|
ISSUER_CA |
Διαδρομή του πιστοποιητικού της αρχής έκδοσης πιστοποιητικών που θεωρείται ότι είναι ο εκδότης. |
Ή συμπληρώστε το πεδίο με ένα από τα πιστοποιητικά αρχής έκδοσης πιστοποιητικών:
1 | |
Πληροφορίες
Η επιλογή -subject ανακτά το CN του πιστοποιητικού.
Παράδειγμα
Θέλουμε να ελέγξουμε ότι η CA που υπέγραψε το πιστοποιητικό του αρχείου /etc/patroni/client.crt είναι πράγματι αυτή του αρχείου /etc/patroni/ca.crt.
Αρχικά, ανακτούμε το περιεχόμενο της επέκτασης X509v3 Authority Key Identifier του πιστοποιητικού /etc/patroni/client.crt με την ακόλουθη εντολή:
1 | |
Η εντολή επιστρέφει:
1 2 3 | |
Στη συνέχεια, ανακτούμε το περιεχόμενο της επέκτασης X509v3 Subject Key Identifier της CA /etc/patroni/ca.crt με την ακόλουθη εντολή:
1 | |
Η εντολή επιστρέφει:
1 2 3 | |
Η σύγκριση των δύο εξόδων δείχνει ότι τα πεδία Key Identifier και CN είναι πανομοιότυπα: το πιστοποιητικό του αρχείου /etc/patroni/ca.crt είναι πράγματι η CA που υπέγραψε το πιστοποιητικό του αρχείου /etc/patroni/client.crt.