Поддержка 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.
Секция конфигурации | Параметр | Описание |
|---|---|---|
|
| Путь к файлу CRL |
|
| Путь к директории с файлами CRL |
|
| Путь к директории CRL для проверки серверного сертификата СУБД |
|
| Путь к директории 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-файлы.
Если каталог с CRL-файлами не подготовлен и хеш-ссылки отсутствуют, при установлении TLS-соединения может возникнуть ошибка проверки сертификата.
Пример сообщения об ошибке:
2026-04-24 15:17:49,197 ERROR: RAFT: (client side): could not establish session to host=<hostname> port=2481: SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get certificate CRL (_ssl.c:1147)')
В этом случае проверьте наличие CRL-файлов в каталоге и выполните подготовку каталога с помощью c_rehash или openssl rehash.
Управление
Для автоматического обновления 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