讓 Open Directory 主伺服器和複本電腦就緒:
- 確認 Open Directory 主伺服器和複本電腦兩者都支援 SSL 連線。
- 在 Open Directory 主伺服器使用自簽憑證,並將主伺服器的主機名稱設為一般名稱以啟用 SSL 加密。
- 在所有複本電腦上啟用 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
此結果應與之前的輸出類似,但最後一行會有以下更動:驗證傳回代碼:0(好),而非之前收到的 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. 移除 ldap.conf 檔案中任何之前的 TLS_CACERTDIR 項目。
6. 使用 ldapsearch 指令加以驗證:
ldapsearch -v -x -H ldaps://[hostname of the server] -b [searchbase]
7. 如果您已經嘗試設定 LDAP 伺服器,可能需要重新啟動「目錄服務」:
sudo killall DirectoryService