PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 01/07/2020 13:57:51

albourg
Membre

standby ssl certificate

Bonjour,

postgres 12.3 linux x86_64 centos 7.
J'ai un standby qui se connecte au primaire, j'ai mis "trust" dans pg_hba.conf.
J'aimerais que le standby utilise un certificat (j'ai déjà des certificats self-signed via la procédure https://www.postgresql.org/docs/12/ssl-tcp.html).
Comment est-il possible se spécifier les certificats dans le connect string du standby pour éviter le "trust"?

Merci.

Hors ligne

#2 01/07/2020 21:46:52

gleu
Administrateur

Re : standby ssl certificate

L'URL que vous donnez ne correspond à aucune page (erreur 404).

Pour une authentification par certificat, cela se passe dans le fichier pg_hba.conf du serveur. https://www.postgresql.org/docs/12/auth-cert.html donne les détails.


Guillaume.

Hors ligne

#3 01/07/2020 21:54:12

gleu
Administrateur

Re : standby ssl certificate

En fait, fluxbb est un peu stupide et a inclus la parenthèse fermante dans l'URL. Il suffisait de supprimer la parenthèse pour que j'accède à la page smile

Pour indiquer les certificats, il suffit d'utiliser les options de connect string détaillées dans https://www.postgresql.org/docs/12/libp … CT-SSLCERT


Guillaume.

Hors ligne

#4 06/07/2020 08:22:04

albourg
Membre

Re : standby ssl certificate

It doesn't really work!
On master:
From pgadmin, if I give the root.crt to client

hostssl dpa2            dpa2          192.168.20.140/32         md5 

=> client can connect if it has root.crt and password.

I would like standby to be able to connect using only root.crt
On primary I tried:

hostssl replication     all             10.12.51.122/32        cert

then

hostssl replication     all             10.12.51.122/32        md5

and in standby's postgreql.conf

primary_conninfo = 'host=192.168.50.122 user=postgres sslrootcert=/var/lib/pgsql/.postgresql/root.crt'

But I get:

2020-07-06 08:18:12.180 CEST [35311] FATAL:  could not connect to the primary server: FATAL:  client certificates can only be checked if a root certificate store is available
        FATAL:  no pg_hba.conf entry for replication connection from host "10.12.51.122", user "postgres", SSL off

certificates are right:

[postgres@pgdpa01 data]$ openssl verify -CAfile root.crt server.crt
server.crt: OK

I would just like ssl to be used between primary and standby, so that data are not in clear text on a wan. How how how?

Dernière modification par albourg (06/07/2020 08:28:53)

Hors ligne

#5 06/07/2020 12:17:46

dverite
Membre

Re : standby ssl certificate

Il n'y a pas besoin de certificat côté client pour chiffrer la communication, on peut se contenter de sslmode=require dans la chaîne de connexion.

par défaut c'est sslmode=prefer, c'est-à-dire qu'il essaie avec SSL puis si ça ne marche pas, sans SSL. C'est pourquoi on trouve ce "SSL off" dans le message d'erreur:

FATAL:  could not connect to the primary server: FATAL:  client certificates can only be checked if a root certificate store is available
        FATAL:  no pg_hba.conf entry for replication connection from host "10.12.51.122", user "postgres", SSL off

Hors ligne

#6 08/07/2020 15:58:03

albourg
Membre

Re : standby ssl certificate

J'ai le root.crt sur le standby

Donc si le pg_hba du primaire, j'ai
hostssl replication     all             <standby ip>/32        trust

et sur le standby:
primary_conninfo = 'host=<primary ip> user=postgres sslrootcert=/var/lib/pgsql/.postgresql/root.crt sslmode=require'

La connection sera cryptée grace au root.crt?

Hors ligne

#7 09/07/2020 12:36:13

dverite
Membre

Re : standby ssl certificate

Pour moi elle sera chiffrée du fait de sslmode=require.
Je ne suis pas sûr que sslrootcert=/var/lib/pgsql/.postgresql/root.crt serve à quelque chose dans ce cas de figure.

Hors ligne

Pied de page des forums