При наличии главного сервера Open Directory и его копии выполните следующие действия.
- Убедитесь, что компьютеры главного сервера Open Directory и его копии поддерживают подключения по протоколу SSL.
- Включите SSL-шифрование на главном сервере Open Directory с помощью самоподписанного сертификата с общим именем, соответствующим имени хоста главного сервера.
- Включите протокол 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