Open Directory:啟用 Open Directory 與複本的 SSL

您可以啟用安全編碼傳輸技術(SSL),在 Open Directory 主伺服器、複本和存取 LDAP 目錄網域的電腦之間提供加密的通訊方式。SSL 使用數位憑證為伺服器提供已認證的身分。您可以使用自簽憑證或取自憑證授權的憑證。

讓 Open Directory 主伺服器和複本電腦就緒:

  1. 確認 Open Directory 主伺服器和複本電腦兩者都支援 SSL 連線。
  2. 在 Open Directory 主伺服器使用自簽憑證,並將主伺服器的主機名稱設為一般名稱以啟用 SSL 加密。
  3. 在所有複本電腦上啟用 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
發佈日期: