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.