Open Directory: Aktivera SSL för Open Directory med repliker

SSL (Secure Sockets Layer) kan aktiveras för att tillhandahålla krypterad kommunikation mellan en Open Directory Master, en replik och de datorer som ansluter till LDAP-katalogdomänen. SSL använder ett digitalt certifikat till att tillhandahålla en certifierad identitet för servrarna. Du kan använda ett självsignerat certifikat eller ett certifikat erhållet från en certifikatutfärdare.

Med Open Directory Master-datorn och replikerna på plats:

  1. Kontrollera att både Open Directory Master-datorn och replikerna har stöd för SSL-anslutningar.
  2. Aktivera SSL-kryptering på Open Directory Master-datorn med ett självsignerat certifikat med nätverksnamnet angett till Masterns värdnamn.
  3. Aktivera SSL på alla repliker: Skapa ett självsignerat certifikat på de repliker som använder Server Admin med samma nätverksnamn som värdnamnet för den datorn.

I Terminal kör du detta kommando:

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 lagrar Server Admin certifikaten under /etc/certificates. Se även till att ta med filnamnen i sökvägen)

Installera certifikaten från Open Directory Master-datorn och replikerna

Certifikatet från varje server i katalogklustret måste kopieras till klientdatorerna för att dessa ska kunna använda SSL. Så här installerar du certifikaten från Open Directory Master-datorn och replikerna:

1. På varje klientdator skapar du katalogen /etc/openldap/certs.

2. På en klientdator öppnar du Terminal och kör detta kommando för att hämta certifikatet från servern:

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

3. Kopiera raderna mellan ”---BEGIN CERTIFICATE---” och ”---END CERTIFICATE---” till en fil med namnet hostname.

4. Placera den nya hostname-filen här: /etc/openldap/certs/

5. Du kan testa certifikatet med det här kommandot: 

openssl s_client -connect [hostname of the server]:636 -CAfile /etc/openldap/certs/hostname

Detta bör visa ungefär samma utdata som tidigare, med följande ändring på den sista raden: verify return code:0(ok) istället för 18 eller 19 som du fick tidigare

6. Om du har bara ett certifikat (till exempel en LDAP-server med SSL aktiverat) lägger du till följande i filen /etc/openldap/ldap.conf

TLS_CACERT /etc/openldap/certs/[serverns värdnamn]

Om du har flera LDAP-servrar med SSL aktiverat

Du måste ange servrarna separat eller lägga dem i samma katalog och peka ldap.conf mot dem med följande steg:

1. För varje server i LDAP-klustret behöver du hämta certifikaten som tidigare med kommandot openssl s_client:

openssl s_client -connect [serverns värdnamn]:636

2. När du har hämtat certifikaten använder du c_hash (ett OpenSSL-verktyg) för att hämta certifikaten i ett hashat format. För varje certifikat ger c_hash dig ett namn som används för att byta namn på certifikatfilen i /etc/openldap/certs:

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

Utdata bör se ut ungefär så här:  03be8eb2.0 => /etc/openldap/certs/hostname

3. När du har fått hashnamnet byter du manuellt namn på den befintliga cert-filen.

Exempel:

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

4. När du har kört alla certifikat genom c_hash, redigerar du filen /etc/openldap/ldap.conf med:

TLS_CACERTDIR /etc/openldap/certs/

5. Ta bort eventuella äldre TLS_CACERTDIR-poster som kan finnas i filen ldap.conf.

6. Verifiera med kommandot ldapsearch:

ldapsearch -v -x -H ldaps://[hostname of the server] -b [searchbase]

7. Du kan behöva starta om Directory Services om du redan har försökt konfigurera LDAP-servern:

sudo killall DirectoryService
Publiceringsdatum: