NetWorker:LDAPS 整合失敗,並顯示「嘗試連線至 LDAPS 伺服器時發生 SSL 交握錯誤:找不到要求目標的有效認證路徑」
Summary: 您嘗試執行authc_config命令/腳本,以新增 AD/LDAPS 外部驗證與 NetWorker。您的 LDAPS CA 憑證已匯入 JAVA cacerts Keystore,但收到錯誤訊息:「嘗試連線至 LDAPS 伺服器時發生 SSL 交握錯誤:找不到要求目標的有效認證路徑」
Symptoms
嘗試連線至 LDAPS 伺服器時發生 SSL 交握錯誤:找不到要求目標的有效認證路徑」
- 您嘗試執行authc_config命令/腳本,以新增 AD/LDAPS 外部驗證與 NetWorker
- 您可以成功整合 AD/LDAP (非 SSL) 與 NetWorker;只有在整合 SSL (LDAPS) 時才會出現此問題
- 您的 LDAPS CA 憑證已匯入 JAVA cacerts Keystore。
- 您正在環境中使用「憑證鏈結」。
Cause
此問題之所以發生,是因為只有鏈結憑證已匯入至 JAVA trust Keystore。 針對憑證鏈結,鏈 結中的所有憑證均應以正確的鏈結順序正確匯入至 JAVA Keystore (鏈結較低,以 root 憑證)。匯入憑證時出現任何問題,都會導致憑證驗證失敗。
當您從 NetWorker 伺服器執行 openssl 命令至 LDAPS 伺服器時,即會識別此資訊:
OPENSSL_INSTALL_PATH\bin> openssl s_client -showcerts -connect ldaps-server.lab.emc.local:636 CONNECTED(00000124) depth=1 DC = LOCAL, DC = EMC, DC = LAB, CN = LDAPS-SERVER --- Certificate chain 0 s:/CN=LDAPS-SERVER.LAB.EMC.LOCAL i:/DC=LOCAL/DC=EMC/DC=LAB/CN=ROOTCA-SERVER -----BEGIN CERTIFICATE----- << removed for brevity >> -----END CERTIFICATE----- 1 s:/DC=LOCAL/DC=EMC/DC=LAB/CN=ROOTCA-SERVER i:/CN=ROOTCA-SERVER -----BEGIN CERTIFICATE----- << removed for brevity >> -----END CERTIFICATE-----
Resolution
若要解決憑證錯誤,請按照下列程式操作:
1.從 JAVA cacerts trust Keystore 移除任何先前匯入的憑證。
此 KB 中的程式會使用 JAVA keytool 命令。可能需要將目錄 (cd) 變更為 JAVA bin 目錄。視 JAVA 安裝和作業系統而定,情況可能會有所不同。您可以在 JAVA installations bin 目錄中找到 Keytool 命令。大多數的 NetWorker 實作都使用適用于 JAVA 的 NetWorker Runtime Environment (NRE)。
- Linux:/opt/nre/java/latest/bin
- Windows:C:\Program Files\NRE\java\jre#.#.#_###\bin
JAVA_INSTALL_PATH\bin> keytool -list -keystore "JAVA_INSTALL_PATH\lib\security\cacerts" -storepass changeit | findstr LDAPS-SERVER
ldaps-server, DATE-IMPORTED, trustedCertEntry,
JAVA_INSTALL_PATH\bin> keytool -list -keystore "JAVA_INSTALL_PATH\lib\security\cacerts" -storepass changeit | findstr ROOTCA-SERVER
rootca-server, DATE-IMPORTED, trustedCertEntry,
- 僅範例是LDAPS-SERVER和ROOTCA-SERVER,您必須將這些值替換為對應于 LDAPS 伺服器和根 CA 伺服器的別名 (通常會使用主機名稱)。
- 即使使用 findstr/grep時仍未顯示憑證。不縮小結果即可檢視輸出,以確認 LDAPS 伺服器及/或根 CA 伺服器沒有別名。在上述範例中,findtr 用於簡易性。
- JAVA cacerts trust keystore 的預設 storepass 為「changeit」。
- 將JAVA_INSTALL_PATH替換為 JAVA 安裝的完整路徑。
- 若要從 authc.truststore 和/或 authc.keystore 移除憑證,請為 -keystore 和 -storepass 的 NetWorker authc 密碼指定這些檔案的完整路徑。NetWorker authc Keystore 密碼是在安裝 NetWorker 期間設定。
- Linux:
- /opt/nsr/authc-server/conf/authc.truststore
- /nsr/authc/conf/authc.keystore
- Windows:
- C:\Program Files\EMC NetWorker\nsr\authc-server\conf\authc.truststore
- C:\Program Files\EMC NetWorker\nsr\authc-server\tomcat\conf\authc.keystore
- Linux:
如果出現憑證,您必須將其刪除 (否則請前往下一個步驟):
keytool -delete -alias ALIAS_NAME -keystore "PATH_TO_CACERTS_FILE" -storepass PASSWORD
範例:
JAVA_INSTALL_PATH\bin> keytool -delete -alias LDAPS-SERVER -keystore ..\lib\security\cacerts -storepass changeit
JAVA_INSTALL_PATH\bin> keytool -delete -alias ROOTCA-SERVER -keystore ..\lib\security\cacerts" -storepass changeit
2.使用 openssl 連線至 LDAPS 伺服器:
openssl s_client -showcerts -connect LDAPS_SERVER:636
例子:
OPENSSL_INSTALL_PATH\bin> openssl s_client -showcerts -connect ldaps-server.lab.emc.local:636
CONNECTED(00000124)
depth=1 DC = LOCAL, DC = EMC, DC = LAB, CN = LDAPS-SERVER
---
Certificate chain
0 s:/CN=LDAPS-SERVER.LAB.EMC.LOCAL
i:/DC=LOCAL/DC=EMC/DC=LAB/CN=ROOTCA-SERVER
-----BEGIN CERTIFICATE-----
<< removed for brevity >>
-----END CERTIFICATE-----
1 s:/DC=LOCAL/DC=EMC/DC=LAB/CN=ROOTCA-SERVER
i:/CN=ROOTCA-SERVER
-----BEGIN CERTIFICATE-----
<< removed for brevity >>
-----END CERTIFICATE-----
3、a.將鏈結憑證(包括 -----BEGIN 憑證-----標頭和-----END 憑證-----頁尾複製到文字檔中,例如:chain.cer
3、b.複製根憑證,包括 -----BEGIN 憑證-----標頭和-----END 憑證-----頁尾,以輸入文字檔,例如:root.cer
4。將鏈結憑證匯入 JAVA cacerts trust keystore,然後匯入所有導致根憑證的憑證:
範例:
JAVA_INSTALL_PATH\bin> keytool -import -alias LDAPS-SERVER -keystore "JAVA_INSTALL_PATH\lib\security\cacerts" -storepass changeit -file "PATH_TO\chain.cer"
<< removed for brevity >>
Trust this certificate? [no]: y
Certificate was added to keystore
JAVA_INSTALL_PATH\bin> keytool -import -alias ROOTCA-SERVER -keystore "JAVA_INSTALL_PATH\lib\security\cacerts" -storepass changeit -file "PATH_TO\root.cer"
<< removed for brevity >>
Trust this certificate? [no]: y
Certificate was added to keystore
- 將別名值替換為對應您環境的別名,例如 LDAPS 和 CA 伺服器的主機名稱。
- 將PATH_TO替換為您為 chain.cer 和 root.cer 建立之檔案位置的完整路徑。
- 請確定在匯入期間未輸出其他錯誤。
5.重新開機 NetWorker 服務。authc 服務會在啟動時讀取 cacerts Keystore:
Linux:nsr_shutdown
systemctl start networker
Windows: net stop nsrd /y&net start nsrd
6.完成 LDAPS 整合:
NetWorker:如何從 NetWorker Web 使用者介面 (NWUI) 設定「AD over SSL」(LDAPS)
NetWorker:如何設定 LDAPS 驗證。