J'essaye de configurer le certificat de SSL pour le serveur de PostgreSQL. J'ai créé un fichier de certificat (server.crt) et une clé (server.key) dans le répertoire de données et met à jour le paramètre SSL sur "on" pour activer la connexion sécurisée.
Je veux seulement que le serveur soit authentifié avec des certificats de serveur côté client et n'exige pas l'authenticité du client côté serveur. J'utilise psql en tant que client pour se connecter et exécuter les commandes.
J'utilise PostgreSQL 8.4 et linux. J'ai essayé avec la commande ci-dessous de me connecter au serveur avec SSL activé
psql "postgresql://localhost:2345/postgres?sslmode=require"
mais j'obtiens
psql: invalid connection option "postgresql://localhost:2345/postgres?sslmode"
Qu'est-ce qui ne va pas ici? Est-ce que la façon dont j'essaie de me connecter au serveur avec le mode SSL activé est correcte? Est-ce bien de n'authentifier que le serveur et pas le client?
Sil te plait aide moi.
psql
ci-dessous 9.2 n'accepte pas cette syntaxe de type URL pour les options.
L'utilisation de SSL peut être pilotée par l'option sslmode=value
sur la ligne de commande ou la variable d'environnement PGSSLMODE , mais la valeur par défaut étant prefer
, les connexions SSL seront essayées automatiquement sans rien spécifier.
Exemple avec une chaîne conninfo (updated pour psql 8.4)
psql "sslmode=require Host=localhost dbname=test"
Lisez la page de manuel pour plus d'options.
psql --set=sslmode=require -h localhost -p 2345 -U thirunas \
-d postgres -f test_schema.ddl
psql -h <Host> -p <port> -U <user> -d <db>
et mettez à jour /var/lib/pgsql/10/data/pg_hba.conf
pour changer la méthode auth en cert
. Vérifiez le lien suivant pour plus d'informations:
psql "sslmode=require Host=localhost port=2345 dbname=postgres" --username=some_user
Selon la documentation de psql postgres , seuls les paramètres de connexion doivent figurer dans la chaîne conninfo (c’est pourquoi, dans notre exemple, --username n’est pas dans cette chaîne)