Open Directory: включение SSL для серверов Open Directory с копиями

Для обеспечения зашифованного взаимодействия между главным сервером Open Directory, его копией и компьютерами, получающими доступ к домену каталога LDAP, можно включить протокол Secure Sockets Layer (SSL). Для обеспечения сертифицированной идентификации серверов в протоколе SSL используется цифровой сертификат. Можно использовать самоподписанный сертификат или сертификат, полученный из центра сертификации.

При наличии главного сервера Open Directory и его копии выполните указанные далее действия.

  1. Убедитесь, что компьютеры главного сервера Open Directory и его копии поддерживают подключения по протоколу SSL.

  2. Включите SSL-шифрование на главном сервере Open Directory с помощью самоподписанного сертификата с общим именем, соответствующим имени хоста главного сервера.

  3. Включите протокол SSL на всех компьютерах-копиях: создайте самоподписанный сертификат на компьютерах-копиях с помощью приложения Server Admin с таким же общим именем, которое присвоено хосту этого компьютера.

В окне приложения «Терминал» выполните указанную далее команду.

Mac OS X Server 10.5:

sudo slapconfig -setldapconfig -ssl on -sslkey [путь к ключу SSL] -sslcert [путь к сертификату SSL] -ssldomain [имя сертификата]

Mac OS X Server 10.6:

sudo slapconfig -setldapconfig -ssl on -sslkey [путь к ключу SSL] -sslcert [путь к сертификату SSL]

По умолчанию приложение Server Admin сохраняет сертификаты в каталоге /etc/certificates. Кроме того, путь должен содержать имена файлов.

Установка сертификатов с главного сервера Open Directory и его копий

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

1. На каждом клиентском компьютере создайте каталог /etc/openldap/certs.

2. Чтобы получить сертификат с сервера, на клиентском компьютере откройте приложение «Терминал» и выполните следующую команду:

openssl s_client -connect [имя хоста сервера]:636

3. Скопируйте строки между ---BEGIN CERTIFICATE--- и ---END CERTIFICATE--- в файл с именем hostname.

4. Поместите новый файл hostname в каталог /etc/openldap/certs/.

5. Протестировать сертификат можно с помощью следующей команды:

openssl s_client -connect [имя хоста сервера]:636 -CAfile /etc/openldap/certs/hostname

В результате должны отобразиться данные, соответствующие полученным ранее, но со следующим изменением в последней строке: verify return code:0(ok) вместо ранее полученного значения, равного 18 или 19.

6. Если имеется только один сертификат (например, единственный сервер LDAP с включенным протоколом SSL), в файл /etc/openldap/ldap.conf добавьте следующее:

TLS_CACERT /etc/openldap/certs/[имя хоста сервера]

Если имеется несколько серверов LDAP с включенным протоколом SSL

Потребуется указать каждый сервер отдельно или расположить их в одном каталоге и указать для файла ldap.conf путь к ним, выполнив перечисленные ниже действия.

1. Для каждого сервера в кластере LDAP потребуется получить сертификаты, как и ранее, использовав команду openssl s_client:

openssl s_client -connect [имя хоста сервера]:636

2. После получения сертификатов используйте c_hash (утилиту OpenSSL), чтобы преобразовать сертификаты в хешированный формат. Для каждого сертификата c_hash предоставит имя, используемое для переименования файла сертификата в /etc/openldap/certs:

/System/Library/OpenSSL/misc/c_hash /etc/openldap/certs/hostname

Выходные данные должны выглядеть следующим образом: 03be8eb2.0 => /etc/openldap/certs/hostname

3. После получения имени хеша вручную переименуйте существующий файл сертификата.

Пример:

mv /etc/openldap/certs/hostname /etc/openldap/certs/03be8eb2.0

4. Обработав все сертификаты в c_hash, измените файл /etc/openldap/ldap.conf с использованием следующего выражения:

TLS_CACERTDIR /etc/openldap/certs/

5. Удалите все более ранние записи TLS_CACERTDIR, которые могут присутствовать в файле ldap.conf.

6. Выполните проверку с использованием команды ldapsearch:

ldapsearch -v -x -H ldaps://[имя хоста сервера] -b [поисковая система]

7. Если ранее уже выполнялась попытка настройки сервера LDAP, может потребоваться перезапустить службы каталогов:

sudo killall DirectoryService

Дата публикации: