PostgreSQL unterstützt SSL-Verbindungen, die es Benutzern ermöglichen, sich sicher mit ihren Datenbanken zu verbinden. In diesem Artikel sehen wir uns an, wie SSL in der PostgreSQL-Datenbank aktiviert wird.
So aktivieren Sie SSL in PostgreSQL
Hier sind die Schritte zum Aktivieren der SSL-Verbindung in PostgreSQL. Auf dem PostgreSQL-Server benötigen wir 3 Zertifikate im Datenverzeichnis für die SSL-Konfiguration. Sie sind:
- root.crt (vertrauenswürdiges Stammzertifikat)
- server.crt (Serverzertifikat)
- server.key (privater Schlüssel)
Öffnen Sie das Terminal und führen Sie den folgenden Befehl aus, um als root auszuführen
$ sudo -
$ cd /var/lib/pgsql/data
Generieren Sie den privaten Schlüssel mit openssl. Sie werden nach der Passphrase gefragt.
$ openssl genrsa -des3 -out server.key 1024
Passphrase entfernen
$ openssl rsa -in server.key -out server.key
Bonus-Lesung:Top-Datenbank-Blogs, denen Sie folgen sollten
Aktualisieren Sie die Dateiberechtigung und den Besitz der privaten Schlüsseldatei.
$ chmod 400 server.key
$ chown postgres.postgres server.key
Erstellen Sie auf ähnliche Weise ein Serverzertifikat
$ openssl req -new -key server.key -days 3650 -out server.crt -x509
In der obigen Anweisung gibt -x509 ein selbstsigniertes Zertifikat an. Sie werden nach Details wie E-Mail, Land usw. gefragt. Geben Sie sie ein und schließen Sie die Zertifikatserstellung ab.
Da wir ein selbstsigniertes Zertifikat verwenden, verwenden wir unseren Serverschlüssel als Stammzertifikat.
$ cp server.crt root.crt
Aktualisieren Sie pg_hba.conf, um die folgenden Zeilen hinzuzufügen
# IPv4 remote connections for authenticated users hostssl all www-data 0.0.0.0/0 md5 clientcert=1 hostssl all postgres 0.0.0.0/0 md5 clientcert=1
Bearbeiten Sie postgresql.conf, um die folgende Zeile hinzuzufügen
ssl = on
Starten Sie den PostgreSQL-Server neu
$ /etc/init.d/postgresql restart
Bonuslektüre:So erhöhen Sie die maximale Anzahl von Verbindungen in PostgreSQL
SSL im PostgreSQL-Client aktivieren
Wir benötigen außerdem 3 Dateien, um SSL im PostgreSQL-Client zu aktivieren. Wir speichern sie unter ~/.postgresql/ Verzeichnis
- root.crt (vertrauenswürdiges Stammzertifikat)
- postgresql.crt (Client-Zertifikat)
- postgresql.key (privater Schlüssel)
Erstellen Sie postgresql.key auf dem Client-Rechner und entfernen Sie die Passphrase.
$openssl genrsa -des3 -out /tmp/postgresql.key 1024
$openssl rsa -in /tmp/postgresql.key -out /tmp/postgresql.key
Bonuslektüre:Tipps zur Leistungsoptimierung von PostgreSQL
Als nächstes erstellen wir postgresql.crt und signieren es mit dem vertrauenswürdigen Stamm (private Schlüsseldatei vom Server). Bitte beachten , wenn Sie zur Eingabe des allgemeinen Namens (CN) des Zertifikats aufgefordert werden, legen Sie ihn auf Datenbankname.
fest$openssl req -new -key /tmp/postgresql.key -out /tmp/postgresql.csr
$openssl x509 -req -in server.req -out /tmp/postgresql.csr -CA root.crt -CAkey server.key -out /tmp/postgresql.crt -CAcreateserial
Kopieren Sie die drei Dateien, die im /tmp-Verzeichnis des Servers erstellt wurden, auf den Client-Computer. Kopieren Sie root.crt aus dem /tmp-Verzeichnis des Servers in das Verzeichnis ~/.postgresql/ des Clients Verzeichnis.
Hoffentlich hilft Ihnen dieser Artikel dabei, SSL in PostgreSQL zu aktivieren.