sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur man aktiverar SSL i PostgreSQL

PostgreSQL stöder SSL-anslutning som tillåter användare att säkert ansluta till sina databaser. I den här artikeln kommer vi att titta på hur man aktiverar SSL i PostgreSQL-databasen.


Hur man aktiverar SSL i PostgreSQL

Här är stegen för att aktivera SSL-anslutning i PostgreSQL. På PostgreSQL-servern behöver vi 3 certifikat i datakatalogen för SSL-konfiguration. De är:

  • root.crt (pålitligt rotcertifikat)
  • server.crt (servercertifikat)
  • server.nyckel (privat nyckel)

Öppna terminal och kör följande kommando för att köra som root

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

Generera privat nyckel med openssl. Du kommer att bli tillfrågad om lösenordsfras.

$ openssl genrsa -des3 -out server.key 1024

Ta bort lösenfras

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

Bonusläsning:Bästa databasbloggar att följa

Uppdatera filbehörigheten och äganderätten till den privata nyckelfilen.

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

Skapa på samma sätt servercertifikat

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

I ovanstående uttalande indikerar -x509 ett självsignerat certifikat. Du kommer att bli tillfrågad om information som e-post, land, etc. Ange det och slutför certifikatgenereringen.

Eftersom vi använder självsignerat certifikat kommer vi att använda vår servernyckel som rotcertifikat.

$ cp server.crt root.crt

Uppdatera pg_hba.conf för att lägga till följande rader

# 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

Redigera postgresql.conf för att lägga till följande rad

ssl = on

Starta om PostgreSQL Server

$ /etc/init.d/postgresql restart

Bonus Läs:Hur man ökar maximala anslutningar i PostgreSQL

Aktivera SSL i PostgreSQL-klienten

Vi behöver också 3 filer för att aktivera SSL i PostgreSQL-klienten. Vi kommer att lagra dem på ~/.postgresql/ katalogen

  • root.crt (pålitligt rotcertifikat)
  • postgresql.crt (klientcertifikat)
  • postgresql.key (privat nyckel)

Skapa postgresql.key på klientdatorn och ta bort lösenordsfrasen.

$ 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

Därefter skapar vi postgresql.crt och signerar den med den betrodda roten (privat nyckelfil från servern). Obs , när du uppmanas att ange certifikats vanligt namn (CN), ställ in det på databasnamn.

$ 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

Kopiera de tre filerna som skapats i serverns /tmp-katalog till klientdatorn. Kopiera root.crt från serverns /tmp-katalog till klientens ~/.postgresql/ katalog.

Förhoppningsvis hjälper den här artikeln dig att aktivera SSL i PostgreSQL.

  1. SQLite grupperar efter/antal timmar, dagar, veckor, år

  2. Vad betyder det när en PostgreSQL-process är inaktiv i transaktionen?

  3. Hur reparerar man en serialiserad sträng som har skadats av en felaktig byte-räknelängd?

  4. PostgreSQL långsam på ett stort bord med arrayer och massor av uppdateringar