PostgreSQLLa base de données la plus sophistiquée au monde.
Documentation PostgreSQL 16.6 » Annexes » Modules et extensions supplémentaires fournis » sslinfo -- obtenir des informations SSL du client

F.42. sslinfo -- obtenir des informations SSL du client #

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.42.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 certifications à 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 noms des certificats, votre base de données est capable de représenter ces caractères aussi. Si votre bases 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 identifieurs 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.42.2. Auteur #

Victor Wagner , Cryptocom LTD

Dmitry Voronin

E-Mail du groupe de développement Cryptocom OpenSSL :