listen_addresses
(string
) #
Indique les adresses TCP/IP sur lesquelles le serveur écoute
les connexions en provenance d'applications clientes. La valeur prend la forme
d'une liste de noms d'hôte ou d'adresses IP numériques séparés
par des virgules. L'entrée spéciale *
correspond
à toutes les interfaces IP disponibles. L'enregistrement
0.0.0.0
permet l'écoute sur toutes les
adresses IPv4 et ::
permet l'écoute sur
toutes les adresses IPv6. Si la liste est vide, le
serveur n'écoute aucune interface IP, auquel cas seuls les
sockets de domaine Unix peuvent être utilisées pour s'y connecter.
Si la liste n'est pas vide, le serveur démarrera s'il peut écouter
sur au moins une adresse IP. Un message d'avertissement sera émis pour
les adresses TCP/IP qui ne peuvent pas être ouvertes.
La valeur par défaut est localhost, ce qui n'autorise que
les connexions TCP/IP locales de type « loopback ».
Bien que l'authentification client (Chapitre 21) permet un contrôle très fin
sur les accès au serveur, listen_addresses
contrôle les interfaces pouvant accepter des tentatives de
connexion, ce qui permet d'empêcher des demandes répétées de connexion
malveillantes sur des interfaces réseau non sécurisées. Ce paramètre
ne peut être configuré qu'au lancement du serveur.
port
(integer
) #Le port TCP sur lequel le serveur écoute ; 5432 par défaut. Le même numéro de port est utilisé pour toutes les adresses IP que le serveur écoute. Ce paramètre ne peut être configuré qu'au lancement du serveur.
max_connections
(integer
) #Indique le nombre maximum de connexions concurrentes au serveur de base de données. La valeur par défaut typique est de 100 connexions, mais elle peut être moindre si les paramètres du noyau ne le supportent pas (ce qui est déterminé lors de l'initdb). Ce paramètre ne peut être configuré qu'au lancement du serveur.
Lors de l'exécution d'un serveur en attente, vous devez configurer ce paramètre à la même valeur ou à une valeur plus importante que sur le serveur primaire. Sinon, des requêtes pourraient ne pas être autorisées sur le serveur en attente.
Lorsque vous modifiez cette valeur, pensez également à ajuster max_parallel_workers, max_parallel_maintenance_workers et max_parallel_workers_per_gather.
reserved_connections
(integer
)
#
Définit le nombre de « slots » de connexions réservées pour des
connexions effectuées avec des rôles appartenant au rôle
pg_use_reserved_connections
.
Lorsque le nombre de « slots » de connexions libres est plus
grand que superuser_reserved_connections mais
inférieur ou égal à la somme de
superuser_reserved_connections
et de
reserved_connections
, les nouvelles connexions ne seront
acceptées que pour des « superutilisateurs » et des roles appartenant
au rôle pg_use_reserved_connections
.
Si le nombre de « slots » de connexions libres est inférieur ou
égal à superuser_reserved_connections
, alors les
nouvelles connexions ne seront acceptées que pour des « superutilisateurs ».
La valeur par défaut est 0. La valeur doit être inférieure à
max_connections
moins superuser_reserved_connections
.
Ce paramètre ne peut être modifié qu'au démarrage du serveur.
superuser_reserved_connections
(integer
) #
Indique le nombre de connecteurs (« slots ») réservés
aux connexions des superutilisateurs PostgreSQL.
Au plus max_connections connexions peuvent être
actives simultanément. Dès que le nombre de connexions
simultanément actives atteint max_connections
moins
superuser_reserved_connections
, les nouvelles
connexions ne sont plus acceptées que pour les superutilisateurs.
Les « slots » de connexions réservés grâce à ce paramètre sont destinés à
servir de réserve finale pour des utilisations en urgence lorsque les « slots »
réservés par reserved_connections ont été épuisés.
La valeur par défaut est de trois connexions. La valeur doit être plus
petite que la valeur de max_connections
moins
reserved_connections
. Ce paramètre
ne peut être configuré qu'au lancement du serveur.
unix_socket_directories
(string
) #Indique le répertoire pour le(s) socket(s) de domaine Unix sur lequel le serveur va écouter les connexions des applications clientes. Plusieurs sockets peuvent être créés en listant plusieurs répertoires et en les séparant par des virgules. Les espaces blancs entre les entrées sont ignorés. Entourer un nom de répertoire avec des guillemets doubles si vous avez besoin d'inclure un espace blanc ou une virgule dans son nom. Une valeur vide désactive l'utilisation des sockets de domaine Unix, auquel cas seules les sockets TCP/IP pourront être utilisées pour se connecter au serveur.
Une valeur commençant par @
indique qu'un socket abstrait
doit être créé (actuellement uniquement supporté sous Linux).
Dans ce cas, la valeur ne doit pas spécifier un « répertoire »
mais un préfixe à partir duquel le nom du socket est construit de la même
manière que pour un socket de système de fichiers. Alors que le préfixe d'un
socket réseau est totalement libre, puisqu'il ne s'agit pas d'un emplacement
sur disque, il est conseillé par convention d'utiliser des valeurs qui ressemblent
à celles des sockets de systèmes de fichiers comme @/tmp
.
La valeur
par défaut est habituellement /tmp
, mais cela
peut se changer au moment de la contruction. Sur Windows, la valeur par
défaut est vide, ce qui signifie qu'aucun socket de domaine Unix n'est
créé par défaut. Ce paramètre ne peut être configuré qu'au lancement du
serveur.
En plus du fichier socket, qui est nommé
.s.PGSQL.
où
nnnn
nnnn
est le numéro de port du serveur, un
fichier ordinaire nommé
.s.PGSQL.
sera
créé dans chaque répertoire de nnnn
.lockunix_socket_directories
.
Les deux fichiers ne doivent pas être supprimés manuellement.
Pour les sockets réseau, aucun fichier de verrou n'est créé.
Ce paramètre n'a pas de sens sur les systèmes qui ignorent complètement
les droits sur les sockets, comme Solaris à partir de la version 10.
Un effet similaire peut être atteint en pointant
unix_socket_directories
vers un répertoire ayant
un droit de recherche limité à l'audience acceptée.
unix_socket_group
(string
) #
Configure le groupe propriétaire des sockets de domaine Unix
(l'utilisateur propriétaire des sockets est toujours l'utilisateur
qui lance le serveur). En combinaison avec le paramètre
unix_socket_permissions
, ceci peut être
utilisé comme un mécanisme de contrôle d'accès supplémentaire pour
les connexions de domaine Unix. Par défaut, il s'agit d'une
chaîne vide, ce qui sélectionne le groupe par défaut de l'utilisateur
courant. Ce paramètre ne peut être configuré qu'au lancement du
serveur.
Ce paramètre n'est pas supporté sous Windows. Sa configuration sera ignorée. De plus, les sockets réseaux n'ayant pas de propriétaire, ce paramètre est ignoré dans ce cas.
unix_socket_permissions
(integer
) #
Configure les droits d'accès aux sockets de domaine Unix. Ce socket
utilise l'ensemble habituel des droits du système de fichiers
Unix. Ce paramètre doit être indiqué sous une forme
numérique telle qu'acceptée par les appels système
chmod
et umask
(pour
utiliser le format octal, ce nombre doit commencer avec un
0
(zéro)).
Les droits par défaut sont 0777
, signifiant que
tout le monde peut se connecter. Les alternatives raisonnables sont
0770
(utilisateur et groupe uniquement, voir
aussi unix_socket_group
) et
0700
(utilisateur uniquement) (pour un
socket de domaine Unix, seul le droit d'accès en écriture
importe ; il n'est donc pas nécessaire de donner ou de révoquer les
droits de lecture ou d'exécution).
Ce mécanisme de contrôle d'accès est indépendant de celui décrit dans le Chapitre 21.
Ce paramètre ne peut être configuré qu'au lancement du serveur.
Ce paramètre est hors sujet sur certains systèmes comme Solaris, à partir
de sa version 10, qui ignorent complètement les droits des sockets. Là,
vous pouvez obtenir le même effet en pointant
unix_socket_directories
vers un répertoire ayant les
droits de recherche limités à l'audience souhaité.
Les sockets réseaux n'ayant pas de droits de fichier, ce paramètre est également ignoré dans ce cas.
bonjour
(boolean
) #Active la promotion de l'existence du serveur via le protocole Bonjour. Désactivé par défaut, ce paramètre ne peut être configuré qu'au lancement du serveur.
bonjour_name
(string
) #Indique le nom du service Bonjour. Le nom de l'ordinateur est utilisé si ce paramètre est configuré avec une chaîne vide (ce qui est la valeur par défaut). Ce paramètre est ignoré si le serveur n'est pas compilé avec le support Bonjour. Ce paramètre ne peut être configuré qu'au lancement du serveur.
tcp_keepalives_idle
(integer
) #
Indique la durée sans activité réseau après laquelle le système
d'exploitation devra envoyer un message TCP au client. Si la valeur de ce
paramètre est indiquée sans unité, la valeur est supposée être en
secondes. Une valeur de 0 (valeur par défaut) utilise la valeur par
défaut du système d'exploitation.
Sur Windows, une valeur à 0 va configurer ce paramètre à 2 heures, comme
Windows ne permet pas de lire la valeur système par défaut.
Ce paramètre est seulement
supporté par les systèmes qui supportent les symboles
TCP_KEEPIDLE
ou une option socket équivalente et
sur Windows ; sur les autres systèmes, ce paramètre doit valoir
zéro.
Pour les sessions connectées via une socket de domaine Unix, ce
paramètre est ignoré et vaut toujours zéro.
tcp_keepalives_interval
(integer
) #
Indique la durée après laquelle un message TCP keepalive qui n'a pas été
répondu par le client devra être transmis de nouveau. Si la valeur de ce
paramètre est indiquée sans unité, la valeur est supposée être en
secondes. Une valeur de 0 (valeur par défaut) utilise la valeur par
défaut du système d'exploitation.
Sur Windows, une valeur à 0 va configurer se paramètre à 1 seconde, comme
Windows ne permet pas de lire la valeur système par défaut.
Ce paramètre est
seulement supporté par les systèmes qui supportent le symbole
TCP_KEEPINTVL
ou une option socket équivalente et sur
Windows ; sur les autres systèmes, ce paramètre doit valoir zéro.
Pour les sessions connectées via une socket de domaine Unix, ce
paramètre est ignoré et vaut toujours zéro.
tcp_keepalives_count
(integer
) #
Indique le nombre de messages TCP keepalive pouvant être perdus avant
que la connexion au serveur soit considérée comme morte. Une valeur de
0 (valeur par défaut) revient à utiliser la valeur système par défaut. Ce paramètre est
seulement supporté par les systèmes qui supportent le symbole
TCP_KEEPCNT
ou une option socket équivalente (which does not include
Windows) ; sur les autres systèmes, ce paramètre doit valoir zéro.
Pour les sessions connectées via une socket de domaine Unix, ce
paramètre est ignoré et vaut toujours zéro.
tcp_user_timeout
(integer
)
#
Indique la durée pendant laquelle les données transmises peuvent rester
sans réponse avec que la connexion TCP ne soit fermée.Si la valeur de ce
paramètre est indiquée sans unité, la valeur est supposée être en
millisecondes. Une valeur de 0 (valeur par défaut) utilise la valeur par
défaut du système d'exploitation.
Ce paramètre est uniquement accepté sur les systèmes
qui acceptent TCP_USER_TIMEOUT
(which does not include Windows) ;
sur les autres
systèmes, il doit valoir zéro. Pour les sessions connectées via un socket
de domaine Unix, ce paramètre est ignoré et vaut toujours zéro.
client_connection_check_interval
(integer
)
#Permet de passer un intervalle de temps pendant lequel le server vérifie que le client est toujours connecté lorsqu'une requête s'exécute. La vérification est faite en interrogeant le socket et permet aux requêtes longues d'être annulées plus tôt si le noyau indique que la connexion est fermée.
Cette option se base sur les événements noyau exposés par Linux, macOS, illumos et la famille BSD de systèmes d'exploitation, et n'est actuellement pas disponibles sur les autres systèmes.
Si la valeur est passée sans unité, elle est comprise en millisecondes.
La valeur par défaut est 0
, ce qui désactive la
fonctionnalité. Sans cette fonctionnalité de vérification des
connexions, le serveur ne détectera une perte de connexion qu'à la
prochaine interaction avec le socket, lorsqu'il attend ou reçoit ou
envoie des données.
Pour que le noyau puisse détecter de lui-même une perte de connexion TCP dans un certain délai quel que soit le scénario, y compris des pannes de réseau, il peut être nécessaire d'ajuster le paramètre de keepalive TCP au niveau du système d'exploitation ou les paramètres tcp_keepalives_idle, tcp_keepalives_interval et tcp_keepalives_count de PostgreSQL.
authentication_timeout
(integer
) #
Temps maximum pour terminer l'authentification du client, en
secondes. Si un client n'a pas terminé le protocole d'authentification
dans ce délai, le serveur ferme la connexion. Cela protège le serveur
des clients bloqués occupant une connexion indéfiniment. Si la valeur de
ce paramètre est donné sans unité, l'unité sera la seconde. La valeur par
défaut est d'une minute.
Ce paramètre peut être configuré au lancement du serveur et dans le fichier
postgresql.conf
.
password_encryption
(enum
)
#
Détermine l'algorithme utilisé pour chiffrer un mot de passe
spécifié dans CREATE ROLE
ou ALTER ROLE. Les valeurs possibles sont
scram-sha-256
, qui permettra un chiffrement du mot de passe
avec SCRAM-SHA-256 et md5
, qui stocke le mot de passe
haché en MD5. La valeur par défaut est scram-sha-256
.
Notez que des clients plus anciens pourraient ne pas disposer du support pour l'authentification SCRAM, et ne fonctionneraient pas avec des mots de passe chiffrés avec SCRAM-SHA-256. Voir Section 21.5 pour les détails.
scram_iterations
(integer
)
#
Le nombre d'itérations de calcul à effectuer lors du chiffrement
d'un mot de passe en utilisant SCRAM-SHA-256. La valeur par défaut est 4096
.
Un nombre d'itérations plus élevé offre une protection supplémentaire
contre les attaques par force brute sur les mots de passe stockés, mais
rend l'authentification plus lente. La modification de la valeur n'a
aucun effet sur les mots de passe existants chiffrés avec SCRAM-SHA-256 car
le nombre d'itérations est fixé au moment du chiffrement. Afin d'utiliser une
valeur modifiée, le mot de passe doit être défini de nouveau.
krb_server_keyfile
(string
)
#
Indique l'emplacement du fichier de clés Kerberos du serveur. La valeur
par défaut est FILE:/usr/local/pgsql/etc/krb5.keytab
(où le chemin correspond à ce qui a été indiqué comme
sysconfdir
lors de la compilation ; utilisez
pg_config --sysconfdir
pour le déterminer). Si ce
paramètre est configuré à une chaîne vide, il est ignoré et une valeur
par défaut dépendante du système est utilisée. Ce paramètre peut
seulement être configuré dans le fichier
postgresql.conf
ou sur la ligne de commande du
serveur. Voir Section 21.6 pour plus d'informations.
krb_caseins_users
(boolean
)
#
Indique si les noms d'utilisateur GSSAPI doivent être traités en
respectant la casse. Le défaut est off
(sensible à
la casse). Ce paramètre ne peut être positionné que dans le fichier
postgresql.conf
ou sur la ligne de commande du
serveur.
gss_accept_delegation
(boolean
)
#
Indique si la déléagation GSSAPI doit être acceptée par le client.
La valeur par défaut (off
) indique les informations
d'identification des clients ne seront pas acceptés.
La changer à on
va permettre au serveur d'accepter les
informations d'identification qui lui sont déléguées par le client. Ce
paramètre ne peut être modifié que dans le fichier
postgresql.conf
ou en ligne de commande.
db_user_namespace
(boolean
)
#
Ce paramètre autorise des noms d'utilisateur par base de données. Il
est à off
par défaut. Ce paramètre ne peut
être positionné que dans le fichier postgresql.conf
ou sur la ligne de commande du serveur.
S'il est activé, vous devez créer des utilisateurs en tant que
username@dbname
. Quand
username
est transmis par une connexion
cliente, @
et le nom de la base sont ajoutés au
nom d'utilisateur, et ce nom spécifique à la base sera recherché par
le serveur. Notez que si vous créez des utilisateurs dont le nom
comprend un @
, vous devrez ajouter des guillemets
autour de ce nom.
Même avec ce paramètre activé, vous pouvez toujours créer les
utilisateurs globaux ordinaires. Ajoutez simplement @
en donnant le nom dans le client, comme par exemple
pierre@
. Le @
sera supprimé
avant la recherche de l'utilisateur par le serveur.
db_user_namespace
provoque un écart entre les
représentations des noms du client et du serveur. Les tests
d'authentification sont toujours fait avec le nom d'utilisateur du
serveur, donc les méthodes d'authentification doivent être configurées
avec le nom connu du serveur, pas celui du client. Comme
md5
utilise le nom d'utilisateur comme sel sur
le client comme sur le serveur, md5
ne peut être
utilisé avec db_user_namespace
.
Cette option est considérée comme une mesure provisoire jusqu'à ce qu'une solution complète soit trouvée. À ce moment, cette option sera supprimée.
Voir Section 19.9 pour plus d'informations sur la mise en œuvre
de SSL. Les paramètres de configuration pour le contrôle du
chiffrement de transfert utilisant les protocoles TLS sont
nommés ssl
pour des raisons historiques, même si le support
du protocole SSL est considéré comme obsolète. Dans ce
contexte, SSL est utilisé de façon interchangeable avec
TLS.
ssl
(boolean
) #
Active les connexions SSL.
Ce paramètre peut uniquement être modifié dans le fichier
postgresql.conf
ou indiqué sur la ligne de commande.
La valeur par défaut est off
.
ssl_ciphers
(string
) #
Donne une liste d'algorithmes SSL autorisées à être
utilisés sur des connexions SSL. Voir la page de manuel de
ciphers dans
le paquet OpenSSL pour la syntaxe de ce
paramètre et une liste des valeurs supportées. Seules les connexions
utilisant TLS version 1.2 et antérieures sont impactées. Il n'existe
actuellement pas de paramètre contrôlant le choix des algorithmes
utilisés par les connexions avec TLS version 1.3. La valeur par défaut
est HIGH:MEDIUM:+3DES:!aNULL
. Cette valeur est
généralement raisonnable, sauf si vous avez des besoins spécifiques en
terme de sécurité.
Ce paramètre peut seulement être configuré dans le fichier
postgresql.conf
ou sur la ligne de commande du
serveur.
Voici une explication de la valeur par défaut ;:
HIGH
#
Algorithmes du groupe HIGH
(par exemple AES,
Camellia, 3DES)
MEDIUM
#
Algorithmes du groupe MEDIUM
(par exemple RC4,
SEED)
+3DES
#
L'ordre par défaut d'OpenSSL pour
HIGH
est problématique
car il positionne 3DES avant AES128. Ceci est mauvais parce que
3DES offre moins de sécurité que AES128, et il est aussi bien moins
rapide. +3DES
le réordonne après les algorithmes
des groupes HIGH
et MEDIUM
.
!aNULL
#Désactive les algorithmes anonymes qui ne font pas d'authentification. Ces algorithmes sont vulnérables à des attaques de type man-in-the-middle (MITM) et ne doivent donc pas être utilisés.
Les détails sur les algorithmes varient suivant les versions
d'OpenSSL.
Utiliser la commande openssl ciphers -v 'HIGH:MEDIUM:+3DES:!aNULL'
pour voir les détails réels de la version OpenSSL
actuellement installée. Notez que cette liste est filtrée à l'exécution
suivant le type de clé du serveur.
ssl_prefer_server_ciphers
(boolean
)
#
Précise s'il faut utiliser les préférences du serveur en terme
d'algorithmes, ou celles du client.
Ce paramètre peut uniquement être modifié dans le fichier
postgresql.conf
ou indiqué sur la ligne de commande.
La valeur par défaut est on
.
Les versions de PostgreSQL antérieures à la 9.4 n'ont pas ce paramètre et utilisent toujours les préférences du client. Ce paramètre a principalement pour but de maintenir une compatibilité ascendante avec ces versions. Utiliser les préférences du serveur est généralement conseillé car il est plus probable que le serveur soit correctement configuré.
ssl_ecdh_curve
(string
)
#
Indique le nom de la courve à utiliser dans l'échange de clés
ECDH. Elle doit être acceptée par tous les clients
qui se connectent. Il n'est pas nécessaire que la même courbe soit
utilisée par la clé Elliptic Curve.
Ce paramètre peut uniquement être modifié dans le fichier
postgresql.conf
ou indiqué sur la ligne de commande.
La valeur par défaut est prime256v1
.
Noms OpenSSL pour les courbes les plus courantes :
prime256v1
(NIST P-256),
secp384r1
(NIST P-384),
secp521r1
(NIST P-521).
La liste complète des courbes disponibles peut être récupérée avec la
commande openssl ecparam -list_curves
. Toutes ne
sont pas utilisables dans TLS.
ssl_ca_file
(string
) #
Indique le nom du fichier contenant l'autorité du certificat serveur SSL
(CA).
Les chemins relatifs sont relatifs par rapport au répertoire de données.
Ce paramètre peut uniquement être modifié dans le fichier
postgresql.conf
ou indiqué sur la ligne de commande.
Par défaut le paramètre est vide, ce qui veut dire qu'il n'y a pas de
fichier d'autorité du certificat chargé, et donc que la vérification du
certificat client n'est pas effectuée.
ssl_cert_file
(string
) #
Indique le nom du fichier contenant le certificat SSL du serveur.
Les chemins relatifs sont relatifs par rapport au répertoire de données.
Ce paramètre peut uniquement être modifié dans le fichier
postgresql.conf
ou indiqué sur la ligne de commande.
La valeur par défaut est server.crt
.
ssl_crl_file
(string
) #
Indique le nom du fichier contenant la liste de révocation de certificat
SSL client (CRL).
Les chemins relatifs sont relatifs par rapport au répertoire de données.
Ce paramètre peut uniquement être modifié dans le fichier
postgresql.conf
ou indiqué sur la ligne de commande.
Par défaut, ce paramètre est vide, ce qui veut dire qu'aucune liste de
révocation de certificat n'est chargée. (à moins que
ssl_crl_dir soit configuré).
ssl_crl_dir
(string
)
#
Indique le nom du répertoire qui contient la liste de révocation de
certificats du serveur (CRL). Les chemins relatifs sont pris à partir du
répertoire de données. Ce paramètre peut seulement être indiqué dans le
fichier postgresql.conf
ou sur la ligne de
commande. La valeur par défaut est vide, signifiant qu'aucun CRL n'est
utilisé, à moins que le paramètre ssl_crl_file
ne soit renseigné.
Le répertoire doit être préparé avec la commande
OpenSSL openssl rehash
ou
c_rehash
. Voir la documentation de OpenSSL pour plus
d'informations.
Quand ce paramètre est utilisé, les CRL du répertoire spécifié sont chargés à la demande au moment de la connexion. Les nouvelles CRL qui sont ajoutées dans le répertoire pourront être utilisées immédiatement, contrairement au paramètre ssl_crl_file, avec lequel les CRL sont chargées au démarrage du serveur ou au rechargement de la configuration. Les deux paramètres peuvent être utilisés simultanément.
ssl_key_file
(string
) #
Indique le nom du fichier contenant la clé privée SSL du serveur.
Les chemins relatifs sont relatifs par rapport au répertoire de données.
Ce paramètre peut uniquement être modifié dans le fichier
postgresql.conf
ou indiqué sur la ligne de commande.
La valeur par défaut est server.key
.
ssl_min_protocol_version
(enum
) #
Configure la version minimale du protocole SSL/TLS à utiliser. Les
valeurs valides sont actuellement : TLSv1
,
TLSv1.1
, TLSv1.2
,
TLSv1.3
. Les versions plus anciennes de la
bibliothèque OpenSSL n'acceptent pas toutes
les valeurs ; une erreur peut survenir si une configuration non
supportée est choisie. Les versions du protocole avant TLS 1.0, donc SSL
version 2 et 3, sont toujours désactivées.
La valeur par défaut est TLSv1.2
, ce qui satisfait les
bonnes pratiques au moment où ceci est écrit.
Ce paramètre peut seulement être configuré dans le fichier
postgresql.conf
ou sur la ligne de commande du
serveur.
ssl_max_protocol_version
(enum
) #Configure la version maximale du protocole SSL/TLS à utiliser. Les valeurs valides sont les mêmes que pour ssl_min_protocol_version, avec la possibilité d'accepter une chaîne vide, qui permet toute version du protocole. Le comportement par défaut est d'autoriser toute version. Configurer la version maximale du protocole est principalement utile pour des tests ou si certains composants ont des problèmes pour travailler avec un protocole plus récent.
Ce paramètre peut seulement être configuré dans le fichier
postgresql.conf
ou sur la ligne de commande du
serveur.
ssl_dh_params_file
(string
)
#
Indique le nom du fichier contenant les paramètres Diffie-Hellman utilisés
pour la famille DH éphémère des algorithmes SSL. La valeur par défaut est
une chaîne vide, auquel cas les paramètres DH par défaut sont utilisés.
Utiliser des paramètres DH personnalisés réduit l'exposition si un attaquant
réussit à craquer les paramètres DH internes bien connus. Vous pouvez créer
votre propre fichier de paramètre DH avec la commande
openssl dhparam -out dhparams.pem 2048
.
Ce paramètre peut seulement être configuré dans le fichier
postgresql.conf
ou sur la ligne de commande du
serveur.
ssl_passphrase_command
(string
)
#Indique une commande externe à appeler quand il faut obtenir une phrase de passe pour déchiffrer un fichier SSL tel que la clé privée. Par défaut, ce paramètre est vide, ce qui implique que le mécanisme interne de demande de cette phrase de passe sera utilisé.
La commande doit envoyer la phrase de passe dans sa sortie standard et
quitter avec le code 0. Dans la valeur du paramètre, %p
est remplacée par la chaîne d'interrogation. (Écrivez
%%
pour afficher un %
.) Notez que la
chaîne d'interrogation contiendra probablement des espaces, donc
mettez les guillemets adéquats. S'il y a une nouvelle ligne unique à la fin
de la sortie, elle sera supprimée.
En fait, la commande n'a pas besoin de demander une phrase de passe à l'utilisateur. Elle peut la lire depuis un fichier, l'obtenir d'un trousseau ou de quelque chose de ce genre. C'est à l'utilisateur de s'assurer que ce mécanisme est sûr.
Ce paramètre ne peut être renseigné que dans le fichier
postgresql.conf
ou sur la ligne de commande.
ssl_passphrase_command_supports_reload
(boolean
)
#
Ce paramètre indique si la commande pour la phrase de passe désignée dans
ssl_passphrase_command
doit aussi être appelée lors d'un
rechargement de configuration, si le fichier clé veut une phrase de
passe. Si ce paramètre est off
(c'est le défaut),
alors ssl_passphrase_command
sera ignoré lors d'un
rechargement et la configuration SSL ne sera pas rechargée si une phrase
de passe était nécessaire. C'est la configuration correcte si la
commande a besoin d'un TTY pour demander la phrase, qui pourrait ne pas
être disponible quand le serveur fonctionne. Passer ce paramètre à
on
peut être approprié si la phrase de passe est
obtenue, par exemple, depuis un fichier.
Ce paramètre ne peut être renseigné que dans le fichier
postgresql.conf
ou sur la ligne de commande.