PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

So aktivieren Sie SSL in PostgreSQL

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.