À l'aide de psql pour se connecter à postgresql en mode ssl
Je suis en train de configurer un certificat ssl pour le serveur postgreSQL. J'ai créé un fichier de certificat (serveur de.crt) et la clé (serveur de.la clé) dans le répertoire de données et mettre à jour le paramètre SSL sur "on" pour activer la connexion sécurisée.
Je veux juste que seul le serveur pour être authentifié avec des certificats de serveur, côté client, et ne pas exiger l'authenticité du client au serveur. Je suis à l'aide de psql comme un client pour se connecter et exécuter les commandes.
Je suis en utilisant PostgreSQL 8.4 et linux. J'ai essayé avec la commande ci-dessous pour vous connecter au serveur avec ssl activé
psql "postgresql://localhost:2345/postgres?sslmode=require"
mais je suis
psql: invalid connection option "postgresql://localhost:2345/postgres?sslmode"
Ce fais mal ici? Est la façon dont je suis en train d'essayer de se connecter au serveur avec ssl activé le mode est-elle correcte? Est-il amende pour authentifier seul serveur et non sur le client ?
Merci de m'aider.
- Le port 2345 au lieu de la valeur par défaut 5432 est-il destiné?
- Oui. C'est le port configuré.
- Si vous souhaitez que la connexion soit sécurisée contre les attaques de type MITM, utilisez
sslmode=verify-full
, pas seulementrequire
.
Vous devez vous connecter pour publier un commentaire.
psql
ci-dessous 9.2 n'accepte pas cette URL-comme syntaxe pour les options.L'utilisation de SSL peut être entraînée par la
sslmode=value
option sur la ligne de commande ou le PGSSLMODE variable d'environnement, mais la valeur par défaut étantprefer
, les connexions SSL sera essayé en premier automatiquement, sans préciser quoi que ce soit.Exemple avec un conninfo chaîne (mis à jour pour psql 8.4)
Lire la page de manuel pour plus d'options.
psql -h localhost -p 2345 -U thirunas -d postgres "sslmode=require" -f test_schema.ddl
, mais il ditsql: warning: extra command-line argument "sslmode=require" ignored
psql -h localhost "sslmode=require" -p 2345 -U thirunas -d postgres -f test_schema.ddl
. Avertissementpsql: warning: extra command-line argument "sslmode=require" ignored
psql: FATAL: connection requires a valid client certificate
. Je sais où sont mes certificats sont, mais comment puis-je spécifier l'emplacement d'psql
?Selon la postgres psql documentation, seuls les paramètres de connexion doivent aller dans le conninfo chaîne(c'est pourquoi, dans notre exemple, --nom d'utilisateur n'est pas à l'intérieur de cette chaîne)
conninfo
chaîne. Mais je pense aussi que les docs qui pourrait être plus clair ici.et mise à jour
/var/lib/pgsql/10/data/pg_hba.conf
pour modifier la méthode auth pourcert
. Consulter le lien suivant pour plus d'informations:https://www.postgresql.org/docs/9.1/auth-pg-hba-conf.html