Open Directory: Aktivere SSL for Open Directory med replikaer
Secure Sockets Layer (SSL) kan aktiveres for å få kryptert kommunikasjon mellom en Open Directory Master, replika og datamaskinene som bruker LDAP-katalogdomenet. SSL bruker et digitalt sertifikat til å sørge for en sertifisert identitet for serverne. Du kan bruke et egensignert sertifikat eller et sertifikat som er mottatt fra en sertifikatautoritet.
Med Open Directory Master- og replika-datamaskiner på plass:
Sørg for at både Open Directory Master- og replika-datamaskinene støtter SSL-tilkoblinger.
Aktiver SSL-kryptering på Open Directory Master ved bruk av et egensignert sertifikat med vertsnavnet til Master som navn (cn).
Aktiver SSL på alle replika-datamaskiner: Opprett et egensignert sertifikat på replika-datamaskinene ved hjelp av Server Admin med samme navn (cn) som vertsnavnet på datamaskinen.
Utfør denne kommandoen i Terminal:
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]
(Som standard lagrer Server Admin sertifikatene under /etc/certificates. Sørg også for å inkludere filnavn i banen)
Installer sertifikater fra Open Directory Master og replikaer
For at klientmaskiner skal kunne bruke SSL må sertifikatet fra hver server i katalogklyngen bli kopiert til klientmaskinene. Slik installerer du sertifikatene fra Open Directory Master- og replika-datamaskinene:
1. Opprett /etc/openldap/certs-katalogen på hver klientdatamaskin.
2. Åpne Terminal på en klientmaskin og utfør denne kommandoen for å få sertifikatet fra serveren:
openssl s_client -connect [hostname for server]:636
3. Kopier linjene mellom «----BEGIN CERTIFICATE--» og «---END CERTIFICATE--» til en fil med navnet «hostname».
4. Plasser den nye hostname-filen her:/etc/openldap/certs/
5. Du kan teste sertifikatet ved hjelp av denne kommandoen:
openssl s_client -connect [hostname of the server]:636 -CAfile /etc/openldap/certs/hostname
Det skal gi omtrent de samme utdataene som tidligere, men med denne endringen på siste linje: verify return code:0(ok) i stedet for 18 eller 19 som du har mottatt tidligere.
6. Hvis du har bare ett sertifikat (for eksempel en enkelt LDAP-server med SSL aktivert), legger du til følgende i filen /etc/openldap/ldap.conf
TLS_CACERT /etc/openldap/certs/[hostname of the server]
Hvis du har flere LDAP-servere med SSL-aktivert
Du må angi serverne enkeltvis eller plassere dem alle i samme katalog og la ldap.conf peke mot dem ved å følge denne framgangsmåten:
1. Du må skaffe sertifikater for hver server i LDAP-klyngen akkurat som før ved bruke kommandoen openssl s_client:
openssl s_client -connect [hostname for server]:636
2. Når du har fått sertifikatene, bruker du c_hash (et OpenSSL-verktøy) til å hente sertifikatene i et «hashed»-format. For hvert sertifikat vil c_hash gi deg et navn som vil bli brukt til å gi sertifikatet et nytt navn i /etc/openldap/certs:
/System/Library/OpenSSL/misc/c_hash /etc/openldap/certs/hostname
Utdataene skal se omtrent slik ut: 03be8eb2.0 => /etc/openldap/certs/hostname
3. Når du har mottatt «hash»-navnet, gir du hver eksisterende sertifikatfil nytt navn manuelt.
Eksempel:
mv /etc/openldap/certs/hostname /etc/openldap/certs/03be8eb2.0
4. Når du har kjørt alle sertifikatene gjennom c_hash, redigerer du /etc/openldap/ldap.conf-filen med:
TLS_CACERTDIR /etc/openldap/certs/
5. Fjern eventuelle tidligere TLS_CACERTDIR-oppføringer som kan finnes i ldap.conf-filen.
6. Kontroller med kommandoen ldapsearch:
ldapsearch -v -x -H ldaps://[hostname of the server] -b [searchbase]
7. Du må kanskje omstarte Katalogtjenester hvis du allerede har forsøkt å konfigurere LDAP-serveren:
sudo killall DirectoryService