sql >> Database teknologi >  >> RDS >> PostgreSQL

Sådan aktiveres SSL i PostgreSQL

PostgreSQL understøtter SSL-forbindelse, der tillader brugere at oprette sikker forbindelse til deres databaser. I denne artikel vil vi se på, hvordan man aktiverer SSL i PostgreSQL-databasen.


Sådan aktiverer du SSL i PostgreSQL

Her er trinene til at aktivere SSL-forbindelse i PostgreSQL. På PostgreSQL-serveren har vi brug for 3 certifikater i databiblioteket til SSL-konfiguration. De er:

  • root.crt (betroet rodcertifikat)
  • server.crt (servercertifikat)
  • server.nøgle (privat nøgle)

Åbn terminal og kør følgende kommando for at køre som root

$ sudo -
$ cd /var/lib/pgsql/data

Generer privat nøgle ved hjælp af openssl. Du vil blive bedt om en adgangssætning.

$ openssl genrsa -des3 -out server.key 1024

Fjern adgangssætning

$ openssl rsa -in server.key -out server.key

Bonuslæsning:Topdatabaseblogs at følge

Opdater filtilladelsen og ejerskabet af den private nøglefil.

$ chmod 400 server.key
$ chown postgres.postgres server.key

På samme måde skal du oprette servercertifikat

$ openssl req -new -key server.key -days 3650 -out server.crt -x509

I ovenstående erklæring angiver -x509 et selvsigneret certifikat. Du vil blive bedt om detaljer såsom e-mail, land osv. Indtast det og fuldfør certifikatgenereringen.

Da vi bruger selvsigneret certifikat, vil vi bruge vores servernøgle som rodcertifikat.

$ cp server.crt root.crt

Opdater pg_hba.conf for at tilføje følgende linjer

# 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

Rediger postgresql.conf for at tilføje følgende linje

ssl = on

Genstart PostgreSQL Server

$ /etc/init.d/postgresql restart

Bonus Læs:Sådan øges maks. forbindelser i PostgreSQL

Aktiver SSL i PostgreSQL-klienten

Vi har også brug for 3 filer for at aktivere SSL i PostgreSQL-klienten. Vi gemmer dem på ~/.postgresql/ mappe

  • root.crt (betroet rodcertifikat)
  • postgresql.crt (klientcertifikat)
  • postgresql.key (privat nøgle)

Opret postgresql.key på klientmaskine og fjern adgangssætning.

$ openssl genrsa -des3 -out /tmp/postgresql.key 1024
$ openssl rsa -in /tmp/postgresql.key -out /tmp/postgresql.key

Bonus Læs:PostgreSQL Performance Tuning Tips

Dernæst opretter vi postgresql.crt og signerer det med den betroede rod (privat nøglefil fra serveren). Bemærk venligst , når du bliver bedt om certifikatets almindelige navn (CN), skal du indstille det til databasenavn.

$ 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

Kopier de tre filer, der er oprettet i serverens /tmp-bibliotek til klientmaskine. Kopier root.crt fra server /tmp-bibliotek til klientens ~/.postgresql/ bibliotek.

Forhåbentlig hjælper denne artikel dig med at aktivere SSL i PostgreSQL.

  1. SQLite introducerer UNIXEPOCH()-funktionen

  2. Sådan ændrer du kolonner eller genererer Alter-scripts ved at bruge GUI i SQL Server - SQL Server / T-SQL vejledning del 38

  3. Nye og udviklende PostgreSQL Enterprise-funktioner med seneste udgivelser

  4. VALUES-erklæring i MySQL