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.