Open Directory: włączanie protokołu SSL dla programu Open Directory z replikami
Protokół SSL (Secure Sockets Layer) można włączyć, aby zapewnić szyfrowaną komunikację między oprogramowaniem Open Directory Master i Replica a komputerami, które uzyskują dostęp do domeny katalogu LDAP. Protokół SSL używa certyfikatu cyfrowego do potwierdzania tożsamości serwerów. Możesz użyć certyfikatu z podpisem własnym lub certyfikatu wydanego przez urząd certyfikacji.
Po skonfigurowaniu komputerów z oprogramowaniem Open Directory Master i Replica:
Upewnij się, że zarówno komputery z oprogramowaniem Open Directory Master, jak i Replica obsługują połączenia SSL.
Włącz szyfrowanie SSL na komputerze z Open Directory Master przy użyciu certyfikatu podpisanego samodzielnie z nazwą wspólną ustawioną na nazwę hosta Master.
Włącz protokół SSL na wszystkich komputerach z Replica — utwórz certyfikat podpisany samodzielnie na komputerach Replica przy użyciu programu Server Admin i tej samej nazwy co nazwa hosta tego komputera.
Wykonaj te polecenie w Terminalu:
Mac OS X Server 10.5:
sudo slapconfig -setldapconfig -ssl on -sslkey [ścieżka do klucza SSL] -sslcert [ścieżka do certyfikatu SSL] -ssldomain [nazwa certyfikatu]
Mac OS X Server 10.6:
sudo slapconfig -setldapconfig -ssl on -sslkey [ścieżka do klucza SSL] -sslcert [ścieżka do certyfikatu SSL]
(Domyślnie program Server Admin przechowuje certyfikaty w folderze /etc/certificates. Pamiętaj też, aby w ścieżce uwzględnić nazwy plików).
Zainstaluj certyfikaty z komputerów z oprogramowaniem Open Directory Master i Replica
Aby komputery klienckie mogły używać protokołu SSL, należy skopiować certyfikaty z każdego serwera w klastrze katalogowym na komputery klienckie. Aby zainstalować certyfikaty z komputerów Open Directory Master i Replica:
1. Na każdym komputerze klienckim utwórz katalog /etc/openldap/certs.
2. Na komputerze klienckim otwórz Terminal i wykonaj to polecenie, aby pobrać certyfikat z serwera:
openssl s_client -connect [nazwa hosta serwera]:636
3. Skopiuj wiersze między „---BEGIN CERTIFICATE---” a „---END CERTIFICATE---” do pliku o nazwie „hostname”.
4. Umieść nowy plik hostname w katalogu /etc/openldap/certs/
5. Certyfikat można przetestować, używając tego polecenia:
openssl s_client -connect [nazwa hosta serwera]:636 -CAfile /etc/openldap/certs/hostname
Powinny zostać wyświetlone dane wyjściowe podobne do poprzednich, z następującą zmianą w ostatnim wierszu: „verify return code:0(ok)” (zamiast 18 lub 19 jak poprzednio).
6. Jeśli masz tylko jeden certyfikat (na przykład jeden serwer LDAP z włączonym protokołem SSL), dodaj następujące elementy do pliku /etc/openldap/ldap.conf:
TLS_CACERT /etc/openldap/certs/[nazwa hosta serwera]
Jeśli masz wiele serwerów LDAP z włączonym protokołem SSL
Określ serwery pojedynczo lub umieść je wszystkie w tym samym katalogu i przekieruj do nich plik ldap.conf, wykonując następujące czynności:
1. Dla każdego serwera w klastrze LDAP należy uzyskać certyfikaty tak jak przed użyciem polecenia openssl s_client:
openssl s_client -connect [nazwa hosta serwera]:636
2. Po uzyskaniu certyfikatów użyj polecenia c_hash (narzędzie OpenSSL), aby pobrać certyfikaty w formacie zaszyfrowanym. Dla każdego certyfikatu narzędzie c_hash poda nazwę, która zostanie użyta do zmiany nazwy pliku certyfikatu w folderze /etc/openldap/certs:
/System/Library/OpenSSL/misc/c_hash /etc/openldap/certs/hostname
Dane wyjściowe powinny być podobne do następujących: 03be8eb2.0 => /etc/openldap/certs/hostname
3. Po otrzymaniu nazwy skrótu ręcznie zmień nazwę istniejącego pliku certyfikatu.
Przykład:
mv /etc/openldap/certs/hostname /etc/openldap/certs/03be8eb2.0
4. Po uruchomieniu wszystkich certyfikatów w narzędziu c_hash zmodyfikuj plik /etc/openldap/ldap.conf za pomocą polecenia:
TLS_CACERTDIR /etc/openldap/certs/
5. Usuń wszystkie wcześniejsze wpisy TLS_CACERTDIR, które mogą znajdować się w pliku ldap.conf.
6. Zweryfikuj za pomocą polecenia ldapsearch:
ldapsearch -v -x -H ldaps://[nazwa hosta serwera] -b [baza wyszukiwania]
7. Może być konieczne ponowne uruchomienie usług Directory, jeśli podjęto już próbę skonfigurowania serwera LDAP:
sudo killall DirectoryService