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

Come abilitare SSL in PostgreSQL

PostgreSQL supporta la connessione SSL che consente agli utenti di connettersi in modo sicuro ai propri database. In questo articolo vedremo come abilitare SSL nel database PostgreSQL.


Come abilitare SSL in PostgreSQL

Ecco i passaggi per abilitare la connessione SSL in PostgreSQL. Sul server PostgreSQL, abbiamo bisogno di 3 certificati nella directory dei dati per la configurazione SSL. Sono:

  • root.crt (certificato radice attendibile)
  • server.crt (certificato del server)
  • chiave.server (chiave privata)

Apri il terminale ed esegui il seguente comando per eseguire come root

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

Genera chiave privata usando openssl. Ti verrà richiesta la passphrase.

$ openssl genrsa -des3 -out server.key 1024

Rimuovi passphrase

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

Bonus da leggere:i migliori blog di database da seguire

Aggiorna l'autorizzazione del file e la proprietà del file della chiave privata.

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

Allo stesso modo, crea il certificato del server

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

Nell'istruzione precedente, -x509 indica un certificato autofirmato. Ti verranno richiesti dettagli come e-mail, paese, ecc. Inseriscilo e completa la generazione del certificato.

Poiché stiamo utilizzando un certificato autofirmato, utilizzeremo la nostra chiave del server come certificato radice.

$ cp server.crt root.crt

Aggiorna pg_hba.conf per aggiungere le seguenti righe

# 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

Modifica postgresql.conf per aggiungere la riga seguente

ssl = on

Riavvia PostgreSQL Server

$ /etc/init.d/postgresql restart

Bonus Leggi:Come aumentare le connessioni massime in PostgreSQL

Abilita SSL nel client PostgreSQL

Abbiamo anche bisogno di 3 file per abilitare SSL nel client PostgreSQL. Li memorizzeremo in ~/.postgresql/ directory

  • root.crt (certificato radice attendibile)
  • postgresql.crt (certificato cliente)
  • postgresql.key (chiave privata)

Crea postgresql.key sul computer client e rimuovere la passphrase.

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

Bonus Leggi:Suggerimenti per l'ottimizzazione delle prestazioni di PostgreSQL

Successivamente, creiamo postgresql.crt e lo firmiamo utilizzando la radice attendibile (file della chiave privata dal server). Nota , quando viene richiesto il nome comune del certificato (CN), impostalo sul nome del database.

$ 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

Copia i tre file creati nella directory /tmp del server sul computer client. Copia root.crt dalla directory del server /tmp nella directory ~/.postgresql/ del client directory.

Si spera che questo articolo ti aiuti ad abilitare SSL in PostgreSQL.