sslinfo. Информация о клиентском SSL-сертификате#

В исходном дистрибутиве установлено по умолчанию: нет.

Связанные компоненты: отсутствуют.

Схема размещения: ext.

Модуль sslinfo выдает информацию о SSL-сертификате, который был представлен текущим клиентом при подключении к Pangolin.

Примечание:

Если для текущего подключения SSL не задействуется, большинство функций модуля возвратят NULL.

Часть информации, выдаваемой этим модулем, можно получить через встроенное системное представление pg_stat_ssl.

Имя функции

Возвращаемое значение

Описание

ssl_is_used

boolean

Текущее подключение использует протокол SSL

ssl_version

text

Имя протокола, по которому организовано SSL-подключение (TLSv1.0, TLSv1.1 или TLSv1.2)

ssl_cipher

text

Имя шифра, используемого для SSL-подключения (например, DHE-RSA-AES256-SHA)

ssl_client_cert_present

boolean

true, если текущий клиент предоставил серверу действительный клиентский SSL-сертификат, иначе – false;
сервер может требовать или не требовать предоставления клиентского сертификата

ssl_client_serial

numeric

Серийный номер текущего клиентского сертификата; сочетание серийного номера сертификата с выдавшим его центром сертификации гарантирует однозначную идентификацию сертификата (не владелец – он должен регулярно менять свои ключи и получать сертификаты в центре сертификации)

ssl_client_dn

text

Полное имя субъекта из текущего клиентского сертификата, преобразуя символьные данные в кодировку текущей базы данных; предполагается, что если в именах в сертификатах используются символы вне таблицы ASCII, то база данных может представить эти символы; если в базе используется кодировка SQL_ASCII, символы вне ASCII в имени будут представлены последовательностями UTF-8

ssl_issuer_dn

text

Возвращает полное имя издателя текущего клиентского сертификата, преобразуя символьные данные в кодировку текущей базы данных; преобразования кодировки осуществляются так же, как и в ssl_client_dn; сочетание возвращаемого значения этой функции с серийным номером сертификата однозначно идентифицирует сертификат

ssl_client_dn_field (fieldname text)

text

Функция возвращает значение указанного поля данных субъекта сертификата либо NULL, если это поле отсутствует; имена полей задаются строковыми константами, которые затем преобразуются в идентификаторы объектов ASN1, используя базу данных объектов OpenSSL.
Принимаются следующие значения:
commonName (или CN);
surname (или SN);
name;
givenName (или GN);
countryName (или C);
localityName (или L);
stateOrProvinceName (или ST);
organizationName (или O);
organizationalUnitName (или OU);
title;
description;
initials;
postalCode;
streetAddress;
generationQualifier;
description;
dnQualifier;
x500UniqueIdentifier;
pseudonym;
role;
emailAddress.
Все перечисленные поля являются необязательными, за исключением commonName. Какие из них будут включены в сертификат, зависит от политики Центра Сертификации. Значение этих полей строго определено стандартами X.500 и X.509, поэтому их нельзя интерпретировать произвольным образом

ssl_issuer_field (fieldname text)

text

Аналог ssl_client_dn_field, но для издателя, не для субъекта сертификата

ssl_extension_info

setof record

Предоставляет информацию о расширениях клиентского сертификата:
– имя расширения;
– значение расширения;
– является ли это расширение критическим

Доработка#

Доработка не проводилась.

Ограничения#

Ограничения отсутствуют.

Установка#

Внимание!

Расширение не будет собираться, если конфигурация была произведена без ключа --with-openssl.

При наличии прав администратора СУБД включение модуля выполняется запросом:

CREATE EXTENSION sslinfo SCHEMA ext;

Настройка#

Настройка не требуется.

Использование модуля#

SELECT ssl_is_used();

Пример вывода результата выполнения запроса:

 ssl_is_used 
-------------
 t
(1 row)
SELECT ssl_version();

Пример вывода результата выполнения запроса:

 ssl_version 
-------------
 TLSv1.2
(1 row)
SELECT ssl_cipher();

Пример вывода результата выполнения запроса:

         ssl_cipher          
-----------------------------
 ECDHE-RSA-AES256-GCM-SHA384
(1 row)
select ssl_client_dn();

Пример вывода результата выполнения запроса:

               ssl_client_dn 
--------------------------------------------------
 /CN=Somebody /C=Some country/O=Some organization
(1 row)

Ссылки на документацию разработчика#

Исходная документация по модулю sslinfo: https://www.postgresql.org/docs/15/sslinfo.html.