Μετάβαση στο περιεχόμενο

Ανανέωση των πιστοποιητικών του συμπλέγματος PostgreSQL

Προετοιμασίες

Ανανέωση πιστοποιητικών

Πριν εκτελέσετε οποιαδήποτε ενέργεια στους κόμβους του συμπλέγματος PostgreSQL, προετοιμάστε νέα πιστοποιητικά για καθέναν από τους κόμβους του συμπλέγματος. Υπενθυμίζεται ότι τα πιστοποιητικά πρέπει να συμμορφώνονται με διάφορους περιορισμούς που καθορίζονται στα προαπαιτούμενα του συμπλέγματος PostgreSQL.

Εάν θέλετε να κάνετε την αλλαγή εν λειτουργία χωρίς να επηρεαστεί η παραγωγή, πρέπει να πληρούνται οι ακόλουθες προϋποθέσεις:

  • Η αρχή έκδοσης πιστοποιητικών δεν έχει ανανεωθεί από την τελευταία παραγωγή των πιστοποιητικών των κόμβων PostgreSQL
  • Η αρχή έκδοσης πιστοποιητικών δεν θα λήξει κατά τη διάρκεια της περιόδου ισχύος των νέων πιστοποιητικών
  • Μπορείτε ακόμη να παραγάγετε και να υπογράψετε πιστοποιητικά με την ίδια αρχή έκδοσης πιστοποιητικών που χρησιμοποιήθηκε κατά την παραγωγή των προηγούμενων πιστοποιητικών των κόμβων PostgreSQL
  • Τα πιστοποιητικά των κόμβων PostgreSQL δεν έχουν λήξει ακόμη

Εάν πληρούνται αυτές οι προϋποθέσεις, μπορείτε να εξετάσετε την ανανέωση των πιστοποιητικών εν λειτουργία χωρίς διακοπή της παραγωγής.

Για να δημιουργήσετε εκ νέου τα πιστοποιητικά χρησιμοποιώντας την υποδομή PKI openssl που αναφέρεται, προαιρετικά, στην τεκμηρίωση εγκατάστασης του συμπλέγματος PostgreSQL, πρέπει να χρησιμοποιήσετε ξανά το κλειδί της αρχής έκδοσης πιστοποιητικών και, στη συνέχεια, να εκτελέσετε ξανά τις εντολές δημιουργίας των πιστοποιητικών.

Εάν δεν είναι δυνατή η ανανέωση των πιστοποιητικών εν λειτουργία και χρησιμοποιείτε υποδομή PKI μέσω openssl, συνιστάται να δημιουργήσετε μια νέα.

Προετοιμασία των πιστοποιητικών

Θα πρέπει να στείλετε στον κατάλογο /tmp/ καθενός από τους κόμβους PostgreSQL το πιστοποιητικό της αρχής έκδοσης πιστοποιητικών ρίζας, με επέκταση .crt.

Θα πρέπει επίσης να στείλετε στον κατάλογο /tmp/ καθενός από τους κόμβους PostgreSQL το πιστοποιητικό και το συσχετισμένο ιδιωτικό κλειδί του. Εάν διαθέτετε μόνο ένα αρχείο .p12, εκτελέστε τις παρακάτω εντολές για να εξαγάγετε το πιστοποιητικό (psql.crt) και το ιδιωτικό κλειδί (psql.key):

1
2
openssl pkcs12 -clcerts -nokeys -out psql.crt -in P12_CERT
openssl pkcs12 -nocerts -out psql.key -in P12_CERT

Στις προηγούμενες εντολές, αντικαταστήστε το P12_CERT με το όνομα του αρχείου πιστοποιητικού .p12.

Ανανέωση πιστοποιητικού

Προειδοποίηση!

Εάν μπορείτε και επιθυμείτε να πραγματοποιήσετε ενημέρωση εν λειτουργία των πιστοποιητικών με ελάχιστο χρόνο διακοπής της παραγωγής (1 λεπτό + αποσύνδεση των χρηστών), θα πρέπει:

  • Να ανανεώσετε τα πιστοποιητικά διαδοχικά σε κάθε κόμβο
  • Να ανανεώσετε τα πιστοποιητικά μόνο σε κόμβο REPLICA (δείτε πώς να ανακτήσετε πληροφορίες από τον κόμβο LEADER)
  • Να διατηρείτε πάντα τουλάχιστον δύο κόμβους PostgreSQL σε λειτουργία και να εργάζεστε στον τρίτο
  • Για να εργαστείτε στον κόμβο LEADER, μεταφέρετε τον ρόλο LEADER σε άλλον κόμβο· η ενέργεια αυτή θα προκαλέσει την αποσύνδεση των χρηστών και τη μη διαθεσιμότητα της πλατφόρμας για περίπου 1 λεπτό

Για να απλοποιήσετε τις ενέργειες που ακολουθούν, προσαρμόστε τις μεταβλητές των παρακάτω εντολών με τις δικές σας τιμές (τροποποιήστε την προσαρμογή για κάθε κόμβο PostgreSQL):

Τιμή Μεταβλητή Ορισμός
PSQL_CERT Νέο πιστοποιητικό του κόμβου PostgreSQL.
PSQL_KEY Κλειδί συσχετισμένο με το νέο πιστοποιητικό του κόμβου PostgreSQL.
PSQL_CA Πιστοποιητικό της αρχής έκδοσης πιστοποιητικών ρίζας που χρησιμοποιήθηκε για τη δημιουργία του πιστοποιητικού του κόμβου PostgreSQL.

Συνδεθείτε μέσω SSH ως root στον κόμβο PostgreSQL του οποίου τα πιστοποιητικά θέλετε να ενημερώσετε και εκτελέστε τις παρακάτω εντολές για να αντικαταστήσετε τα πιστοποιητικά:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
cp /tmp/PSQL_CERT /etc/etcd/peer.crt
cp /tmp/PSQL_CERT /etc/etcd/client.crt
cp /tmp/PSQL_CERT /etc/patroni/client.crt
cp /tmp/PSQL_KEY /etc/etcd/peer.key
cp /tmp/PSQL_KEY /etc/etcd/client.key
cp /tmp/PSQL_KEY /etc/patroni/client.key
cp /tmp/PSQL_CA /etc/etcd/ca.crt
cp /tmp/PSQL_CA /etc/patroni/ca.crt
cp /tmp/PSQL_CA /usr/local/share/ca-certificates/PSQL-CA-`date +%G-%m-%d`.crt
update-ca-certificates

Για να ολοκληρώσετε τις αλλαγές των πιστοποιητικών, πρέπει να επανεκκινήσετε τον κόμβο PostgreSQL:

1
reboot