Перейти к основному содержимому
Версия: 7.0

Linux и Docker

При использовании LDAPS в настройках LDAP-сервера необходимо указать протокол ldaps:// и порт 636. Вместо IP-адреса необходимо указать CN (Common Name) из сертификата службы каталога.

Пример:

ldaps://dc01.passwork.local:636

Подробнее о заполнении полей при добавлении сервера — в разделе добавление сервера.

warning

Для работы LDAPS Пассворк должен доверять CA-сертификату (или цепочке CA), которым был выпущен сертификат LDAPS-сервера.

Как это работает​

PHP-модуль ldap использует клиентские библиотеки OpenLDAP. При подключении по ldaps:// OpenLDAP устанавливает TLS-соединение и проверяет сертификат сервера службы каталога. Проверка выполняется по системному хранилищу доверенных CA операционной системы (или контейнера). Если CA, выпустивший сертификат LDAPS-сервера, отсутствует в этом хранилище, подключение завершится ошибкой проверки сертификата.

Поэтому на сервере Пассворка нужно добавить корневой или промежуточный CA-сертификат, а не сам сертификат LDAPS-сервера.

Установка сертификатов​

к сведению

На Ubuntu, Debian, Astra Linux и CentOS/RHEL файл CA-сертификата должен иметь расширение .crt и быть в формате PEM/Base64. Если в инфраструктуре используется промежуточный CA, добавьте в хранилище всю необходимую цепочку CA-сертификатов.

Ubuntu / Debian​

Для Astra Linux дополнительно установить пакет:

apt install libldap-common -y
  1. Поместить CA-сертификат в директорию /usr/local/share/ca-certificates/:
cp ldaps-ca.crt /usr/local/share/ca-certificates/
  1. Обновить хранилище сертификатов:
update-ca-certificates
  1. Перезапустить PHP-FPM и веб-сервер, чтобы процессы получили обновлённое хранилище CA:
systemctl restart php8.3-fpm
systemctl restart apache2

CentOS / RHEL​

  1. Разрешить динамическое конфигурирование хранилища сертификатов:
update-ca-trust force-enable
  1. Поместить CA-сертификат в директорию /etc/pki/ca-trust/source/anchors/:
cp ldaps-ca.crt /etc/pki/ca-trust/source/anchors/
  1. Обновить хранилище сертификатов:
update-ca-trust extract
  1. Перезапустить PHP-FPM и веб-сервер, чтобы процессы получили обновлённое хранилище CA:
systemctl restart php-fpm
systemctl restart httpd

Docker​

В стандартной Docker-сборке Пассворка CA-сертификаты подключаются через каталог ./conf/custom_ca в корне установки.

  1. Скопировать CA-сертификат (.pem или .crt) в ./conf/custom_ca:
cp ldaps-ca.crt ./conf/custom_ca/
  1. Перезапустить контейнеры PHP и CRON:
docker restart passwork_php passwork_cron
warning

Путь ./conf/custom_ca указывается относительно каталога Docker-установки Пассворк. После добавления сертификата нужно перезапустить контейнеры passwork_php и passwork_cron. Через PHP выполняется работа с LDAP, а через cron — фоновые задачи (загрузка пользователей и групп). Без перезапуска контейнеров, OpenLDAP продолжит использовать устаревшее хранилище CA.

Windows​

Воспользоваться разделом Windows Server.

Отладка LDAPS​

Чтобы проверить TLS-соединение с LDAPS-сервером и посмотреть цепочку сертификатов:

openssl s_client -connect dc01.passwork.local:636 -showcerts

Чтобы проверить, что серверный сертификат доверяется указанному CA:

openssl verify -CAfile RootCert.pem -untrusted Intermediate.pem UserCert.pem
  • -CAfile — CA-сертификат, которым был выпущен сертификат сервера LDAPS.
  • -untrusted — сертификат сервера LDAPS и промежуточные сертификаты в цепочке (если они есть).

Если openssl s_client / openssl verify проходят успешно, а Пассворк всё ещё не подключается по LDAPS, убедитесь, что CA добавлен именно на хост (или в контейнер), где выполняется PHP, и что PHP-процесс (а в Docker — также passwork_cron) был перезапущен после обновления хранилища сертификатов.