Zum Inhalt

Die Zertifikate des PostgreSQL-Clusters erneuern

Vorbereitungen

Erneuerung des Zertifikats

Bereiten Sie vor jeder Aktion auf den Knoten des PostgreSQL-Clusters neue Zertifikate für jeden der Knoten des Clusters vor. Zur Erinnerung: Die Zertifikate müssen mehrere Einschränkungen erfüllen, die in den Voraussetzungen des PostgreSQL-Clusters angegeben sind.

Wenn Sie die Änderung im laufenden Betrieb vornehmen möchten, ohne die Produktion zu beeinträchtigen, müssen Sie die folgenden Bedingungen erfüllen:

  • Die Zertifizierungsstelle wurde seit der letzten Erzeugung der Zertifikate der PostgreSQL-Knoten nicht erneuert
  • Die Zertifizierungsstelle läuft während der Gültigkeitsdauer der neuen Zertifikate nicht ab
  • Sie können weiterhin Zertifikate mit derselben Zertifizierungsstelle erzeugen und signieren, die bei der Erzeugung der vorherigen Zertifikate der PostgreSQL-Knoten verwendet wurde
  • Die Zertifikate der PostgreSQL-Knoten sind noch nicht abgelaufen

Wenn diese Bedingungen erfüllt sind, können Sie eine Erneuerung der Zertifikate im laufenden Betrieb ohne Unterbrechung der Produktion in Betracht ziehen.

Um die Zertifikate mit der PKI openssl neu zu erzeugen, die optional in der Dokumentation zur Installation des PostgreSQL-Clusters beschrieben ist, müssen Sie den Schlüssel der Zertifizierungsstelle wiederverwenden und anschließend die Befehle zur Erzeugung der Zertifikate erneut ausführen.

Wenn eine Erneuerung der Zertifikate im laufenden Betrieb nicht möglich ist und Sie eine PKI über openssl verwenden, empfehlen wir, eine neue zu erstellen.

Vorbereitung der Zertifikate

Sie müssen das Zertifikat der Wurzelzertifizierungsstelle mit der Erweiterung .crt an jeden der PostgreSQL-Knoten in /tmp/ senden.

Sie müssen außerdem das Zertifikat und den zugehörigen privaten Schlüssel an jeden der PostgreSQL-Knoten in /tmp/ senden. Wenn Sie nur eine .p12-Datei zur Verfügung haben, führen Sie die folgenden Befehle aus, um das Zertifikat (psql.crt) und den privaten Schlüssel (psql.key) zu extrahieren:

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

Ersetzen Sie in den vorherigen Befehlen P12_CERT durch den Namen Ihrer .p12-Zertifikatsdatei.

Erneuerung des Zertifikats

Achtung!

Wenn Sie die Zertifikate im laufenden Betrieb mit einer minimalen Unterbrechung der Produktion aktualisieren können und möchten (1 Minute + Abmeldung der Benutzer), müssen Sie:

Um die folgenden Aktionen zu vereinfachen, passen Sie die Variablen in den nachstehenden Befehlen mit Ihren Werten an (die Anpassung ist für jeden PostgreSQL-Knoten zu ändern):

Wert Variable Definition
PSQL_CERT Neues Zertifikat des PostgreSQL-Knotens.
PSQL_KEY Schlüssel, der zum neuen Zertifikat des PostgreSQL-Knotens gehört.
PSQL_CA Zertifikat der Wurzelzertifizierungsstelle, die zur Erzeugung des Zertifikats des PostgreSQL-Knotens verwendet wurde.

Verbinden Sie sich per SSH als root mit dem PostgreSQL-Knoten, dessen Zertifikate Sie aktualisieren möchten, und führen Sie die folgenden Befehle aus, um die Zertifikate zu ersetzen:

 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

Um die Änderungen der Zertifikate abzuschließen, müssen Sie den PostgreSQL-Knoten neu starten:

1
reboot