PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment activer SSL dans PostgreSQL

PostgreSQL prend en charge la connexion SSL qui permet aux utilisateurs de se connecter en toute sécurité à leurs bases de données. Dans cet article, nous verrons comment activer SSL dans la base de données PostgreSQL.


Comment activer SSL dans PostgreSQL

Voici les étapes pour activer la connexion SSL dans PostgreSQL. Sur le serveur PostgreSQL, nous avons besoin de 3 certificats dans le répertoire de données pour la configuration SSL. Ce sont :

  • root.crt (certificat racine de confiance)
  • serveur.crt (certificat de serveur)
  • server.key (clé privée)

Ouvrez le terminal et exécutez la commande suivante pour exécuter en tant que root

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

Générer une clé privée en utilisant openssl. Vous serez invité à entrer la phrase de passe.

$ openssl genrsa -des3 -out server.key 1024

Supprimer la phrase de passe

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

Lecture bonus :meilleurs blogs de base de données à suivre

Mettez à jour l'autorisation de fichier et la propriété du fichier de clé privée.

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

De même, créez un certificat de serveur

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

Dans l'instruction ci-dessus, -x509 indique un certificat auto-signé. Vous serez invité à entrer des détails tels que l'e-mail, le pays, etc. Entrez-le et terminez la génération du certificat.

Puisque nous utilisons un certificat auto-signé, nous utiliserons notre clé de serveur comme certificat racine.

$ cp server.crt root.crt

Mettez à jour pg_hba.conf pour ajouter les lignes suivantes

# 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

Modifiez postgresql.conf pour ajouter la ligne suivante

ssl = on

Redémarrez le serveur PostgreSQL

$ /etc/init.d/postgresql restart

Lecture bonus :comment augmenter le nombre maximal de connexions dans PostgreSQL

Activer SSL dans le client PostgreSQL

Nous avons également besoin de 3 fichiers pour activer SSL dans le client PostgreSQL. Nous les stockerons dans ~/.postgresql/ répertoire

  • root.crt (certificat racine de confiance)
  • postgresql.crt (certificat client)
  • postgresql.key (clé privée)

Créez postgresql.key sur la machine cliente et supprimez la phrase de passe.

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

Lecture bonus :Conseils de réglage des performances PostgreSQL

Ensuite, nous créons postgresql.crt et le signons en utilisant la racine de confiance (fichier de clé privée du serveur). Veuillez noter , lorsque vous êtes invité à entrer le nom commun du certificat (CN), définissez-le sur le nom de la base de données.

$ 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

Copiez les trois fichiers créés dans le répertoire /tmp du serveur sur la machine cliente. Copiez root.crt du répertoire /tmp du serveur vers ~/.postgresql/ du client répertoire.

Espérons que cet article vous aidera à activer SSL dans PostgreSQL.