Linux и Docker
При использовании LDAPS в настройках LDAP-сервера необходимо указать протокол ldaps:// и порт 636. Вместо IP-адреса необходимо указать CN (Common Name) из сертификата службы каталога.
Пример:
- text
ldaps://dc01.passwork.local:636
Подробнее о заполнении полей при добавлении сервера — в разделе добавление сервера.
Для работы 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 дополнительно установить пакет:
- shell
apt install libldap-common -y
- Поместить CA-сертификат в директорию
/usr/local/share/ca-certificates/:
- shell
cp ldaps-ca.crt /usr/local/share/ca-certificates/
- Обновить хранилище сертификатов:
- shell
update-ca-certificates
- Перезапустить PHP-FPM и веб-сервер, чтобы процессы получили обновлённое хранилище CA:
- shell
systemctl restart php8.3-fpm
systemctl restart apache2
CentOS / RHEL
- Разрешить динамическое конфигурирование хранилища сертификатов:
- shell
update-ca-trust force-enable
- Поместить CA-сертификат в директорию
/etc/pki/ca-trust/source/anchors/:
- shell
cp ldaps-ca.crt /etc/pki/ca-trust/source/anchors/
- Обновить хранилище сертификатов:
- shell
update-ca-trust extract
- Перезапустить PHP-FPM и веб-сервер, чтобы процессы получили обновлённое хранилище CA:
- shell
systemctl restart php-fpm
systemctl restart httpd
Docker
В стандартной Docker-сборке Пассворка CA-сертификаты подключаются через каталог ./conf/custom_ca в корне установки.
- Скопировать CA-сертификат (
.pemили.crt) в./conf/custom_ca:
- shell
cp ldaps-ca.crt ./conf/custom_ca/
- Перезапустить контейнеры PHP и CRON:
- shell
docker restart passwork_php passwork_cron
Путь ./conf/custom_ca указывается относительно каталога Docker-установки Пассворк. После добавления сертификата нужно перезапустить контейнеры passwork_php и passwork_cron. Через PHP выполняется работа с LDAP, а через cron — фоновые задачи (загрузка пользователей и групп). Без перезапуска контейнеров, OpenLDAP продолжит использовать устаревшее хранилище CA.
Windows
Воспользоваться разделом Windows Server.
Отладка LDAPS
Чтобы проверить TLS-соединение с LDAPS-сервером и посмотреть цепочку сертификатов:
- shell
openssl s_client -connect dc01.passwork.local:636 -showcerts
Чтобы проверить, что серверный сертификат доверяется указанному CA:
- shell
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) был перезапущен после обновления хранилища сертификатов.