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 [path to SSL key] -sslcert [path to SSL cert] -ssldomain [name of the certificate]

Mac OS X Server 10.6:

sudo slapconfig -setldapconfig -ssl on -sslkey [path to SSL key] -sslcert [path to SSL cert]

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

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

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

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

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

openssl s_client -connect [hostname of the server]:636

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

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

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

openssl s_client -connect [hostname of the server]: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://[hostname of the server] -b [searchbase]

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

sudo killall DirectoryService
Дата публикации: