Documentation PostgreSQL 14.22 » Annexes » Modules supplémentaires fournis » sslinfo

Précédent | Niveau supérieur | Suivant
F.38. spi | Sommaire | F.40. tablefunc

## F.39. sslinfo

Le module `sslinfo` fournit des informations sur le certificat SSL que le client actuel a fourni lors de sa connexion à PostgreSQL. Le module est inutile (la plupart des fonctions renvoient NULL) si la connexion actuelle n'utilise pas SSL.

Certaines des informations disponibles dans ce module peuvent aussi être obtenues en utilisant la vue système interne `pg_stat_ssl` .

Cette extension ne se construira pas du tout sauf si l'installation était configurée avec `--with-ssl=openssl`.

### F.39.1. Fonctions

`ssl_is_used() returns boolean`

  Renvoie TRUE si la connexion actuelle au serveur utilise SSL.

`ssl_version() returns text`

  Renvoie le nom du protocole utilisé pour la connexion SSL (c'est-à-dire TLSv1.0, TLSv1.1, TLSv1.2 ou TLSv1.3).

`ssl_cipher() returns text`

  Renvoie le nom du chiffrement utilisé pour la connexion SSL (par exemple DHE-RSA-AES256-SHA).

`ssl_client_cert_present() returns boolean`

  Renvoie TRUE si le client actuel a présenté un certificat client SSL au serveur. (Le serveur pourrait être configuré pour réclamer un certificat client.)

`ssl_client_serial() returns numeric`

  Renvoie un numéro de série du certificat actuel du client. La combinaison du numéro de série de certificat et du créateur du certificat garantit une identification unique du certificat (mais pas son propriétaire -- le propriétaire doit régulièrement changer ses clés et obtenir de nouveaux certificats à partir du créateur).

  Donc, si vous utilisez votre propre CA et autorisez seulement les certificats de ce CA par le serveur, le numéro de série est le moyen le plus fiable (bien que difficile à retenir) pour identifier un utilisateur.

`ssl_client_dn() returns text`

  Renvoie le sujet complet du certificat actuel du client, convertissant des données dans l'encodage actuel de la base de données. Nous supposons que si vous utilisez des caractères non ASCII dans le nom des certificats, votre base de données est capable de représenter ces caractères aussi. Si votre base de données utilise l'encodage SQL_ASCII, les caractères non ASCII seront représentés par des séquences UTF-8.

  Le résultat ressemble à ceci : `/CN=Somebody /C=Some country/O=Some organization`.

`ssl_issuer_dn() returns text`

  Renvoie le nom complet du créateur du certificat actuel du client, convertissant les données caractères dans l'encodage actuel de la base de données. Les conversions d'encodage sont gérées de la même façon que pour `ssl_client_dn`.

  La combinaison de la valeur en retour de cette fonction avec le numéro de série du certificat identifie de façon unique le certificat.

  Cette fonction est réellement utile si vous avez plus d'un certificat d'un CA de confiance dans le fichier d'autorité de certificat de votre serveur, ou si ce CA a envoyé quelques certificats intermédiaires d'autorité.

`ssl_client_dn_field(fieldname text) returns text`

  Cette fonction renvoie la valeur du champ spécifié dans le sujet du certificat, ou NULL si le champ n'est pas présent. Les noms du champ sont des constantes de chaîne qui sont converties dans des identifiants d'objet ASN1 en utilisant la base de données des objets OpenSSL. Les valeurs suivantes sont acceptables :

      commonName (alias CN)
      surname (alias SN)
      name
      givenName (alias GN)
      countryName (alias C)
      localityName (alias L)
      stateOrProvinceName (alias ST)
      organizationName (alias O)
      organizationalUnitName (alias OU)
      title
      description
      initials
      postalCode
      streetAddress
      generationQualifier
      description
      dnQualifier
      x500UniqueIdentifier
      pseudonym
      role
      emailAddress

  Tous ces champs sont optionnels, sauf `commonName`. L'inclusion des champs dépend entièrement de la politique de votre CA. Par contre, la signification des champs est strictement définie par les standards X.500 et X.509, donc vous ne pouvez pas leur donner des significations arbitraires.

`ssl_issuer_field(fieldname text) returns text`

  Identique à `ssl_client_dn_field`, mais pour le créateur du certificat, plutôt que pour le sujet du certificat.

`ssl_extension_info() returns setof record`

  Fournit des informations sur les extensions des certificats clients : nom de l'extension, valeur de l'extension, et s'il s'agit d'une extension critique.

### F.39.2. Auteur

Victor Wagner `<vitus@cryptocom.ru>`, Cryptocom LTD

Dmitry Voronin `<carriingfate92@yandex.ru>`

E-Mail du groupe de développement Cryptocom OpenSSL : `<openssl@cryptocom.ru>`