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
booleantrue, если текущий клиент предоставил серверу действительный клиентский 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Предоставляет информацию о расширениях клиентского сертификата:
– имя расширения;
– значение расширения;
– является ли это расширение критическим

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

Пример 1:
SELECT ssl_is_used();
Пример вывода результата выполнения запроса:
Раскрыть type=sql
 ssl_is_used
-------------
 t
(1 row)
Пример 2:
SELECT ssl_version();
Пример вывода результата выполнения запроса:
Раскрыть type=sql
 ssl_version
-------------
 TLSv1.2
(1 row)
Пример 3:
SELECT ssl_cipher();
Пример вывода результата выполнения запроса:
Раскрыть type=sql
         ssl_cipher
-----------------------------
 ECDHE-RSA-AES256-GCM-SHA384
(1 row)
Пример 4:
select ssl_client_dn();
Пример вывода результата выполнения запроса:
Раскрыть type=sql
               ssl_client_dn
--------------------------------------------------
 /CN=Somebody /C=Some country/O=Some organization
(1 row)

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

Дополнительную информацию по поставляемому модулю sslinfo можно получить по ссылке.
Предыдущий раздел
seg
Следующий раздел
tablefunc
Была ли страница полезной?