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

Поддержка CRL в компонентах кластера Pangolin

Описание

Сведения

Функциональность доступна только для редакций Enterprise и Enterprise для ERP-систем.

CRL (Certificate Revocation List) представляет собой список сертификатов, которые удостоверяющий центр (УЦ) пометил как отозванные до истечения срока их действия. Каждая запись в списке CRL содержит серийный номер отозванного сертификата, дату его отзыва и дополнительную информацию, например причину отзыва или ограничение периода действия отзыва.

В СУБД Pangolin файлы CRL используются для проверки статуса TLS-сертификатов при установлении защищенных соединений между компонентами кластера и клиентскими приложениями. Проверка CRL позволяет предотвратить использование сертификатов, которые были отозваны удостоверяющим центром.

Поддержка CRL реализована во всех основных компонентах кластера Pangolin:

  • СУБД Pangolin;

  • Pangolin Manager;

  • Pangolin Pooler;

  • клиентские утилиты, использующие библиотеку libpq.

    Для автоматического обновления файлов CRL используется «Агент ротации сертификатов» pangolin-certs-rotate, который периодически получает актуальные CRL из точек распространения CRL (CRL Distribution Point, CDP).

Настройка

Настройте параметры CRL в конфигурационных файлах компонентов кластера. Укажите пути к файлам CRL или директориям, содержащим такие файлы.

Если указанные файлы CRL отсутствуют на файловой системе при включенном TLS/SSL, запуск соответствующего компонента завершится ошибкой.

Настройка CRL для СУБД Pangolin

Настройте параметры проверки CRL в конфигурационном файле postgres.yml.

Используйте параметры:

  • ssl_crl_file – укажите путь к файлу CRL, который используется для проверки статуса клиентских сертификатов;
  • ssl_crl_dir – укажите путь к директории с файлами CRL, используемыми для проверки статуса клиентских сертификатов.
примечание

При включенной защите параметров конфигурации значения параметров ssl_crl_file и ssl_crl_dir инициализируются из защищенного хранилища секретов.

Настройка CRL для клиентских утилит

Настройте параметры CRL для клиентских приложений, использующих библиотеку libpq.

Используйте параметры подключения:

  • sslcrl (переменная окружения PGSSLCRL) – укажите путь к файлу CRL для проверки серверных сертификатов;
  • sslcrldir (переменная окружения PGSSLCRLDIR) – укажите путь к директории с файлами CRL.

Настройка CRL для Pangolin Manager

Настройте параметры CRL в конфигурационном файле postgres.yml.

Укажите пути к файлам CRL или директориям с CRL в соответствующих секциях конфигурации Pangolin Manager.

Секция конфигурации

Параметр

Описание

restapi

crlfile

Путь к файлу CRL

restapi

crlpath

Путь к директории с файлами CRL

postgresql/authentication (replication, rewind, superuser)

sslcrldir

Путь к директории CRL для проверки серверного сертификата СУБД

postgresql/parameters

sslcrldir

Путь к директории CRL для проверки клиентских сертификатов

Настройка CRL для Pangolin Pooler

Настройте параметры CRL в конфигурационном файле pangolin-pooler.ini. Параметры конфигурации Pangolin Pooler описаны в разделе«Конфигурирование Pangolin Pooler».

Используйте следующие параметры:

  • client_tls_crl_file – укажите путь к файлу CRL для проверки клиентских сертификатов;
  • client_tls_crl_path – укажите путь к директории CRL для проверки клиентских сертификатов;
  • server_tls_crl_file – укажите путь к файлу CRL для проверки серверного сертификата Pangolin;
  • server_tls_crl_path – укажите путь к директории CRL для проверки серверного сертификата Pangolin.

Подготовка директории CRL

Если используете директорию с CRL-файлами, создайте символические ссылки на файлы CRL, названные по хеш-значению содержимого соответствующего файла.

Рассчитайте хеш-значения и создайте ссылки с помощью утилиты c_rehash.

Пример команды:

c_rehash /pg_ssl/crl

После выполнения команды утилита создаст символические ссылки на файлы CRL в указанной директории. OpenSSL использует такие ссылки для поиска CRL-файлов при проверке сертификатов.

Управление

Для автоматического обновления CRL используйте агент ротации сертификатов pangolin-certs-rotate.

Агент периодически подключается к точкам распространения CRL (CDP), загружает актуальные CRL-файлы и сохраняет их в указанные директории файловой системы.

При запуске агент выполняет первичную проверку и загрузку CRL перед запуском компонентов кластера. Если файлы CRL указаны в конфигурационных файлах, но отсутствуют на файловой системе, соответствующие компоненты кластера не запускаются.

Если файл CRL изменился в точке распространения, агент загружает новый файл и сохраняет его в формате PEM по пути, указанному в конфигурации.

Агент не удаляет файлы CRL из файловой системы. При обновлении существующие файлы заменяются новыми версиями.

После обновления файлов агент выполняет команды, указанные в конфигурации, например перечитывание конфигурации компонентов:

sudo systemctl reload postgresql
sudo systemctl reload pangolin-manager
sudo systemctl reload pangolin-pooler
примечание

Агент pangolin-certs-rotate не выполняет проверку подписи выгруженных файлов CRL.

Проверка подписи CRL выполняется компонентами кластера Pangolin при загрузке файлов CRL в процессе инициализации TLS.

Если загруженный файл CRL содержит серийные номера сертификатов, используемых компонентами кластера, соответствующие сертификаты будут перевыпущены системой управления сертификатами.

Агент также создает символические ссылки на выгруженные CRL-файлы на основе их хеш-значений, чтобы обеспечить корректную работу механизма проверки CRL в OpenSSL.

Диагностика

При возникновении проблем с проверкой CRL выполните диагностику состояния агента и корректности конфигурации.

Проверка состояния службы агента

Проверьте состояние службы:

sudo systemctl status pangolin-certs-rotate.service

Убедитесь, что служба находится в состоянии active (running).

Проверка конфигурации агента

Проверьте корректность конфигурационного файла агента с помощью режима пробного запуска.

Используйте ключ --dry-run, чтобы проверить синтаксис конфигурационного файла без запуска агента.

pangolin-certs-rotate --dry-run

Если конфигурация корректна, команда завершится с кодом возврата 0. При обнаружении ошибок агент выведет сообщение в журнал.

Проверка журналов агента

Проанализируйте журналы работы агента ротации сертификатов.

Используйте системный журнал:

sudo journalctl -u pangolin-certs-rotate.service

При необходимости проверьте директорию журналов, указанную в конфигурации агента.

Справка по аргументам командной строки агента

Используйте встроенную справку утилиты pangolin-certs-rotate, чтобы получить информацию о доступных аргументах командной строки.

Вывод команды pangolin-certs-rotate --help

pangolin-certs-rotate --help
Allowed options:
-h [ --help ] produce this help message
-p [ --pid-file ] arg (=/var/run/pangolin-certs-rotate/pangolin-certs-rotate.pid)
path to agent's PID file
-c [ --config ] arg (=/etc/pangolin-certs-rotate/pangolin-certs-rotate.yml)
path to agent's configuration file
-d [ --dry-run ] check config file format and exit