Перейти к основному содержимому

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

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

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

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

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

Примечание:

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

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

Имя функцииВозвращаемое значениеОписание
ssl_is_usedbooleanТекущее подключение использует протокол SSL
ssl_versiontextИмя протокола, по которому организовано SSL-подключение (TLSv1.0, TLSv1.1 или TLSv1.2)
ssl_ciphertextИмя шифра, используемого для SSL-подключения (например, DHE-RSA-AES256-SHA)
ssl_client_cert_presentbooleantrue, если текущий клиент предоставил серверу действительный клиентский SSL-сертификат, иначе – false;
сервер может требовать или не требовать предоставления клиентского сертификата
ssl_client_serialnumericСерийный номер текущего клиентского сертификата; сочетание серийного номера сертификата с выдавшим его центром сертификации гарантирует однозначную идентификацию сертификата (не владелец – он должен регулярно менять свои ключи и получать сертификаты в центре сертификации)
ssl_client_dntextПолное имя субъекта из текущего клиентского сертификата, преобразуя символьные данные в кодировку текущей базы данных; предполагается, что если в именах в сертификатах используются символы вне таблицы ASCII, то база данных может представить эти символы; если в базе используется кодировка SQL_ASCII, символы вне ASCII в имени будут представлены последовательностями UTF-8
ssl_issuer_dntextВозвращает полное имя издателя текущего клиентского сертификата, преобразуя символьные данные в кодировку текущей базы данных; преобразования кодировки осуществляются так же, как и в 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_infosetof 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.